1. 联系:
*session实现依赖于Cookie
2. session问题:
* 由服务器创建,存储在服务器
* 当浏览器关闭时,服务器不关闭,再次打开浏览器时,
默认获得的不是同一个session对象,想要获取同一个session,如下操作:
创建Cookied对象,键为JSESSIONID,值为session.getId(),同时setMaxAge()时间。
Cookie c=new Cookie("JSESSIONID",session.getId());
c.setMaxAge(60*60);
response.addCookie(c);
* 客户端不关闭,服务器关闭,再次打开服务器是,获得不是同一个session对象,
但是数据不会丢失,这是由于tomcat的完成session钝化,活化功能.
* session的钝化:
* 在服务器正常关闭之前,将session对象系列化到硬盘上
* session的活化:
* 在服务器启动后,将session文件转化为内存中的session对象即可
3. session什么时候被销毁?
1. 服务器被关闭时//对象销毁
2. session对象调用invalidate()//数据和对象都销毁
3. session默认30分钟自动销毁//数据和对象都销毁
选择性配置修改
<session-config>
<session-timeout>30</session-timeout>
</session-config>
4. Cookie问题
* 由服务器创建,存储在客户端
* 默认情况浏览器关闭Cookie销毁
* 但是可以通过cookie.setMaxAge(int seconds),设置Cookie存活时间
* 多个Web项目的cookie不能共享
5. cookie技术和session技术的区别(都是由服务器创建)
1. session存储在服务器端,Cookie在客户端
2. session没有数据大小限制,cookie有
3. Session数据安全,Cookie相对于不太安全