使用Tomcat 7缺省的配置,tomcat关闭后重新启动,发现原来的session没有被删掉,用原来的request获取session仍然可以取到。但是并没有配置session持久化。



原因如下:

tomcat的conf目录下有一个context.xml,这是所有web应用共享的配置信息。

里面有这么一段话:



<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--   

    <Manager pathname="" />

-->



缺省情况下,<Manager pathname="" />是被注释掉的,此时,tomcat在每次重新启动的时候,都会保留原来的session。



如果不想保留的话,需要把<Manager pathname="" />的注释放开,这样tomcat关闭的时候,会删掉所有的session。



默认情况下,tomcat使用StandardManager来管理session,当tomcat关闭,或者web应用被重新加载的时候,会对内存中的HttpSession对象进行持久化,把它们保存在文件系统中,默认的文件是(比如:host name是localhost,app name是test):

work\Catalina\localhost\test\SESSIONS.ser

05-27 09:15