今天看飞思科技,孙卫琴编著的Tomcat与Java Web开发技术详解。
其中107页关于Session生命周期的问题,
书中讲:
以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:
1.客户端关闭浏览器
2.Session过期
3.服务器端调用了HttpSession的invalidate()方法。对第一条不能理解!
因为按我的理解本身http协议是无状态的,服务器端根本不能确定客户端什么时候关闭的浏览器!怎么释放?我觉得就算客户端关闭了浏览器,服务器端也是要等到Session过期才会释放吧?!!请明白人给解释一下!谢谢
其中107页关于Session生命周期的问题,
书中讲:
以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:
1.客户端关闭浏览器
2.Session过期
3.服务器端调用了HttpSession的invalidate()方法。对第一条不能理解!
因为按我的理解本身http协议是无状态的,服务器端根本不能确定客户端什么时候关闭的浏览器!怎么释放?我觉得就算客户端关闭了浏览器,服务器端也是要等到Session过期才会释放吧?!!请明白人给解释一下!谢谢
解决方案 »
- springmvc 用RedirectAttributes属性时报错,重定向带参数
- 从jsp中调用Applet,出现java.lang.reflect.InvocationTargetException异常
- js 通过逗号截取字符串
- jsp环境下不用数据源直接驱动access的方法探讨
- JSP中如何判断某个参数是否存在?
- JavaBean和Application通讯
- jsp怎么实现远程数据导出?
- 寻<jsp高级编程>电子版
- tomcat启动不了
- 我用jsp从sql server或Access中检索出的英文数据怎么都是乱码呀,有时还会抱错。
- 我来做个好人吧,40种网站设计常用技巧
- 急问JSP页面表头的固定问题。
你说的没错啊
关闭浏览器并没有马上过期.
过期的关键是 服务器端调用了HttpSession的invalidate()方法。当时关闭浏览器后,服务器一般会马上调用这个方法。人家孙mm说得也没错啊。
Servlet容器将Session所占资源释放。她是说将,而不是说立刻!楼主读书真仔细!
?
楼主聪明啊!
你说的没错啊
关闭浏览器并没有马上过期.
过期的关键是 服务器端调用了HttpSession的invalidate()方法。当时关闭浏览器后,服务器一般会马上调用这个方法。
~~~~~~~~~~~~~~~~~~~~~~~~人家孙mm说得也没错啊。
Servlet容器将Session所占资源释放。她是说将,而不是说立刻!楼主读书真仔细!=====关键是服务器如何知道用户关闭了浏览器
打开了浏览器后,
这个特殊的cookie就会保存在web服务器的硬盘上
并且浏览器和服务器一直在进行间断性的http通信,
当服务器侦测到浏览器关闭后
服务器端调用了HttpSession的invalidate()方法,
并且删除硬盘上的cookie。
有的不删除,为什么你重新登陆一个web网站,她知道你的个人爱好,因为她还保存你的cookie。
当Request。getSession()服务器会重新分配session