•在以下情况中,Session将结束生命周期,Servlet容器会将Session所占用的资源释放掉:
–客户端关闭浏览器(真的这样吗?)
–Session过期
–服务器端调用了HttpSession的invalidate()方法
原因:
•严格的讲,做不到这一点。可以做一点努力的办法是在所有的客户端页面里使用javascript代码window.onclose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除session。
•但是对于浏览器崩溃或者强行杀死进程这些非常规手段仍然无能为力。
•实际上在项目中我们也不会这么做,而是让服务器在Session过期时将其删除
•Session过期是指当Session开始后,在一段时间内客户没有和Web服务器交互,这个Session会失效,HttpSession的setMaxInactiveInterval()方法可以设置允许Session保持不活动状态的时间(以秒为单位),如果超过这一时间,Session就会失效。