session详解

来源:互联网 发布:设计软件培训学校 编辑:程序博客网 时间:2024/06/15 07:51

1.session 在服务器存储用户信息的技术
- 获得Session对象:HttpSession session = request.getSession();
- 获得SessionId,是唯一值。session.getId();
- setAtrribute(“name”,value);往session中存放内容
- getAtrribute(“name”),获取session中存放的数据

  1. 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返回给客户端.

原创粉丝点击