java jsp session_JSP session的生命周期详解

JSP session的生命周期详解

Session存储在服务器端,当客户端关闭浏览器,并不意味着Session对象的销毁,它的销毁如果不是显式调用invalidate()去销毁session,那么它的生命周期由web.xml中session超时设置,web服务器(tomcat等)控制session的失效。

生命周期

1. 当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。

2. 某次会话当中通过超链接打开的新页面属于同一次会话;只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话;除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话(原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验)

3. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。

失效session

1. 调用session.invalidate()方法来使整个session无效。

2. 调用setMaxInactiveInterval(int interval)方法来设置session超时。

3. 配置web.xml文件    15  ,Tomcat根据配置的时间自动失效。

4. 服务器重新启动

总结

1. Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

2. Session对象对客户端浏览器进行绑定,只要不关闭浏览器,在超时时间内该session都会有效。关闭浏览器,重开一个浏览器,则服务器会分配置新的Session对象。

3. Session是放置在服务器端的对象。所以当客户端关闭浏览器,并不意味着Session对象的销毁。所以到一定时间,一定要对Session对象进行销毁,以释放服务器内存资源。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值