Tomcat关闭后,重新启动,session中保存的对象为什么还存在 各们朋友大家好: 当我关闭Tomcat,重新启动后,session中保存的对象还依然存在,仍然可以使用,不知这是什么原因? 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按道理说放在session里面的东西在你的服务器关闭之后就全部销毁了,不知道LZ是不是启动的时候就自动加载了。 楼上的朋友:你好 "启动的时候就自动加载了"是说自动读取tomcat下保存的session文件? 想请问LZ,应用是不是你开发的?如果不是的话,可能是应用本身有cookies机制,应用启动时读入cookies,创建session信息。csdn上登录后两个星期不用再登录也是这样的啦。 seetomcat\work\Catalina\localhost\xxx\SESSIONS.serxxx是你的context pathsession在服务器关闭的时候被序列化了(xxx\SESSIONS.ser, yyy\SESSIONS.ser..都是相同的)启动的时候加载的 shine333(enihs) : 我在session中保存的对象并没有实现序列化接口. 重启后session中的对象可能被重建,但原session肯定别清空了 楼上的朋友你们好: 我先是通过 HttpSession tSession = request.getSession(false); if (tSession == null){ request.setAttribute("_error","用户连接超时"); return mapping.findForward("/XXXX"); } XXObject tObj = (XXObject) tSession.getAttribute("xxo"); if (tObj == null){ request.setAttribute("_error","用户连接超时"); return mapping.findForward("/XXXX"); } 刚才Tomcat关闭的时候,同时将应用下面的SESSIONS.ser删除后重新启动,可以达到想要的结果,有什么办法可以让tomcat在启动的时候不去读取SESSIONS.ser? 所以说你的问题就是session被保存了。千万不要〉有什么办法可以让tomcat在启动的时候不去读取SESSIONS.ser?这个是正常的,session没有超时,服务器就重启了,客户感觉不到服务器重启了,那才是王道。假如服务器关闭时间长,客户端早关了(即使同一个IP,但进程也换了),session早没了。你要确保的是,1 每次用户近来,都需要先正常登录2 你放到session的都应该是可序列化的,或者设为transient tomcat可以将session保存,默认的是用文件保存,另外还可设置为用mysql保存,在重新启动的时候恢复会话。 把浏览器重启试试阿。 刘览器没重启的话,会存在cookie里的,尤其是第一次运行jsp的时候,服务器会用cookie和session两种方法存储会话的。 tomcat 本来好象如果重启动的时间不长的话,session好象会被保存下来的,我也遇到这种情况weblogic的话,好象对session情况处理得比较好一点 其实问题很好解决: tomcat本身就是个容器,存放jsp,servlet 所有servlet(纯servlet,lisenter,filter)tomcat结束时应该都会执行类似 destroy(); 在这方法里面写的东西tomcat结束就会自动执行。所以想让session对象tomcat重启时自动消失 就在里面写个session.removeAttribute(****)就行了; flexpaper怎以在jsp中的动态得获取要显示的swf文件啊? JFreeChart 乱码问题,请高手指教 jsp页面的问题 网页浏览权限问题 求教高人:ssh环境的问题 每个初学者都会碰到的难题 jsp 连接ACCESS 以下代码出什么结果,请高手“预测”一下? 抽象类不是不能直接实例化吗?可是我们的类库里竟然势力化了,大家帮我看看。。 document.getElementById(id).focus()的问题 关于SmartUpload下载名为中文的问题 求助~~~~~~~~~~~~~
"启动的时候就自动加载了"是说自动读取tomcat下保存的session文件?
我在session中保存的对象并没有实现序列化接口.
我先是通过
HttpSession tSession = request.getSession(false);
if (tSession == null){
request.setAttribute("_error","用户连接超时");
return mapping.findForward("/XXXX");
}
XXObject tObj = (XXObject) tSession.getAttribute("xxo");
if (tObj == null){
request.setAttribute("_error","用户连接超时");
return mapping.findForward("/XXXX");
}
〉有什么办法可以让tomcat在启动的时候不去读取SESSIONS.ser?这个是正常的,session没有超时,服务器就重启了,客户感觉不到服务器重启了,那才是王道。假如服务器关闭时间长,客户端早关了(即使同一个IP,但进程也换了),session早没了。你要确保的是,
1 每次用户近来,都需要先正常登录
2 你放到session的都应该是可序列化的,或者设为transient
weblogic的话,好象对session情况处理得比较好一点
tomcat本身就是个容器,存放jsp,servlet
所有servlet(纯servlet,lisenter,filter)tomcat结束时应该都会执行类似
destroy();
在这方法里面写的东西tomcat结束就会自动执行。所以想让session对象tomcat重启时自动消失
就在里面写个session.removeAttribute(****)就行了;