2014-10-09 17:20 | 题主 | ||||||||
|
关于WebUtil的checkLogin -win7-tomcat环境下tomcat重启后sessionList状态 在WebUtil的checkLogin中如果重启tomcat服务,sessionList清除对象但request的getSession并没有清除,导致sessionList为空,将原来request.setAttribute("sys.user", session.getAttribute("sys.user"));修改为 这样重启tomcat服务时,用户账户的在线统计也正常了(逻辑上,如果有用户登录了,tomcat服务重启,session没有失效,那么不在在线统计范围内); 不过,有没有人知道,为什么tomcat重启了,request的session还不清除呢,只能结束tomcat进程session才清除,这个tomcat的生命周期有没有人了解? |
2014-10-09 20:03 | #1 | ||||||||
|
这个不是一个bug,服务器本身有session的序列化存储功能 比如tomcat设置saveOnRestart=false(调试时建议设置为true),在tomcat停止或重启时将会停止session的存储,当然也可以实现sessionList hashMap的序列化(不建议) |
2014-10-10 07:38 | #2 | ||||||||
|
谢谢建议,此法无论是否序列化session都有效! |
2014-10-10 14:27 | #3 | ||||||||
|
原来是tomcat自动序列化了,这样就完全解开谜团了,我就说怎么直接结束tomcat进程session无效,重启tomcat服务session就有效。 |