1.session 在服务器存储用户信息的技术
- 获得Session对象:HttpSession session = request.getSession();
- 获得SessionId,是唯一值。session.getId();
- setAtrribute(“name”,value);往session中存放内容
- getAtrribute(“name”),获取session中存放的数据
Session 生命周期
三种销毁方式:
(1) session过期 一般默认为半小时 (指的是没有数据交互的情况下,有数据交互
就会重新计算过期时长)
可在tomcat-7.0\conf\web.xml 或者工程中的web.xml中 进行设置
单位为分钟
< session-config >
< session-timeout > 30 < /session-timeout >
< /session-config >
或者直接在JSP/servlet等中设置 单位为秒
session.setMaxInactiveInterval(900);
(2) 非正常关闭 (服务器死机 部署到eclipse中的tomcat 直接点红点stop关闭)
session会直接销毁
正常关闭 session会序列化到硬盘 当重新启动时会再读取其中数据
jsessionid不会改变 直到session过期销毁
(3) 调用invalidate() 方法 让session失效 然后等待过期销毁
问题 session 在浏览器关闭之后就失效了?
(1) 如果未设置session失效时间, 默认为浏览器关闭后失效
(2) 首先Cookie分为内存(进程)中的Cookie和硬保存在盘中的Cookie
大部分session机制都使用进程中的cookie来保存sessionid 当浏览器
关闭后这个进程就消失了,存在其中的Cookie自然也消失了,Cookie中的
jsessionid也丢了当我们再次访问服务器时,原来的session虽然没有被
销毁但我们却找不到了,服务器就会重新分配一块内存和jsessionid给
Cookie返回给客户端.