业务场景: 通常,我们会在会话级别存放一些参数,期望在session生命周期内,可以一直取得保存在session中的指定数据;而只要session过期或者失效,则需要执行重新登录等操作。 但是!我们对于这样的场景会感到很疑惑: 在session中保存对象值,正常重启Tomcat,再次访问应用,居然还可以继续从session中取得之前保存的数据? 理论上,Tomcat容器重启之后再次访问应用应该会创建一个新的session对象,不应该还能从之前的session中取得数据。 这似乎是一种错觉!!!
原因: 默认情况下,只要Tomcat正常关闭,会将当前所有应用程序的session对象进行持久化存储。 存放路径为:
${CATALINA_HOME}/work/Catalina/localhost/${APP_NAME}/SESSIONS.ser
【参考】 http://www.cnblogs.com/huey/p/4803414.html Tomcat - 持久化 Session