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

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,一定要记得回写给浏览器!!!(我刚开始学的时候总是会忘记尴尬

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值