Session生命周期以及内部实现原理

来源:互联网 发布:斗鱼皇帝 知乎 编辑:程序博客网 时间:2024/04/28 18:58

Session生命周期:

创建:程序第一次调用getSession()方法,服务器创建session对象;

摧毁:Session对象到期(默认为30分钟不对其进行操作)。

    1. 可以在web.xml文件中<session-config>标签中配置session的生存时间;
    2. 还可以在程序中调用session.invalidate()方法将其摧毁。

内部实现原理简单描述:

session底层是根据cookie来实现的;

 

浏览器访问某个程序,服务器一旦创建session对象,会给这个对象一个id号以cookie的形式返回,客户机浏览器下一次带着cookie的值来找到对应的session对象;

 

但是返回的cookie没有有效期,默认一个会话的有效期,所以,一旦重启浏览器,cookie就会清空。

 

针对服务器创建的cookie没有有效期的问题,我们可以在程序创建好session对象后new cookie(“JSESSIONID”,session.getId())对象,设置它的有效期和路径(路径和服务器设置的cookie的路径一样),因为session的有效期(默认没有改过的情况下)为30分钟,所以设为30分钟。

这样我们就创建好了一个覆盖服务器的代表session对象的cookie。

注意:每次写完cookie,一定要记得回写给浏览器!!!(我刚开始学的时候总是会忘记尴尬

0 0