业务场景:
通常,我们会在会话级别存放一些参数,期望在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