您的位置:首页 > 运维架构 > Tomcat

重启Tomcat后还是登录状态

2016-07-12 22:49 507 查看
                                         
重启Tomcat后还是登录状态

问题描述:用户登录系统后,服务重启,然后刷新页面,这时是处于登录状态;但是你点击退出清空session中的值时会报空指向异常。

原因:用户和所关联的对象没有实现序列号接口;在默认情况下,tomcat是提供持久化配置的,在conf文件夹下context.xml里:

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

这说明默认的Tomcat是支持Session持久化的。当然,如果取消注释也就取消了这个功能。

● 如果Tomcat配置为Session的不持久化,在Tomcat关闭时,会自动触发Session destroy事件。

● 如果Tomcat配置为Session的持久化,在Tomcat关闭时,不会触发Session destroy事件。而是将每个Session中内容写入到文件中。当Tomcat再次启动时,会读取该参数,并且验证Session是否TimeOut(但是这个验证似乎有点延迟,大概几秒钟吧。如果检测到超时,则Tomcat会自动触发Session Destroy事件)。

问题的追踪和解决:

现在我们需要这样的情景,我想重启服务器,但是重启之后我所有的已登录用户(存在session中)就必须要重新登录。

如果我想要实现已登录用户不再重新登录,那么就需要将session持久话存储到服务器。

同时为了将session中的对象也存储起来,那么session中的对象就必须是可序列化的,即实现serializable接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: