昨天遇到一个问题,就是在前台当用户登录以后,将tomcat关闭,重启tomcat后刷新页面用户居然还是登录状态!用户名和密码我是放在session中的,想不到重启tomcat后session依然有效。
默认情况下,Tomcat下发布的web应用程序,如果涉及session的操作,在Tomcat关闭或undeploy的时候,将会在 work 目录下相应的路径下创建 SESSION.ser 文件存储该webapp的 session 数据。在 session 有效时间内重启Tomcat 或re-deploy,将会加载该文件中的数据,恢复用户原来的 session 运行环境。
如果想在关闭Tomcat后不保存session,可以在<%CATALINA_HOME%> /conf/context.xml中进行配置(下面配置针对tomcat6,tomcat5.x可参考:http://blog.csdn.net/zhaozexin/archive/2005/02/18/293184.aspx ),如下:
在<Context> </Context>组件内加上:
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="false
"
>
<Store className="org.apache.catalina.session.FileStore"
/>
</Manager>
Manager元素可以嵌套在Context组件中,如果不包含它,会自动创建一个缺省的Manager配置,这对大多数需求都是足够的。 saveOnRestart:表示当Tomcat关闭的时候是否应该保存所有的session及Tomcat重启(或者应用重新载入)后是否应该恢复所有 的session。缺省情况下为true。