问答详情
源自:4-4 session的生命周期

重启服务器,会话仍然存在

为什么我重启tomcat服务器后,会话仍然存在?

提问者:MYFREEDOM 2014-12-01 13:22

个回答

  • 好帮手慕珊
    2014-12-02 11:45:53

    在默认的情况下,Tomcat提供session持久化功能。请查看Tomcat安装目录/conf/context.xml。打开xml文件会看到注释:

     Xml代码  

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->  <!--  <Manager pathname="" />  -->      <!-- 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事件)。