重启Eclipse中的Tomcat(或非插件) 使Session失效(非持久化)的解决方法
非插件,就是直接启动Tomcat
今天我有一个应用场景
我把用户的一些关键信息保存在了session中
如用户id 用户权限等信息
但是当我重启服务器Eclipse中的Tomcat插件,然后我刷新页面
发现session还在
这就导致了很严重的安全性
所以需要解决,解决方法如下
打开eclipse的工程目录下,对应项目的context.xml这个文件,下面的地址是完全的地址
D:\Program Files\eclipseJ2EE\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\conf
以上地址可能和您的地址不一样,一样的部分是
workspace\.metadata\.plugins\org.eclipse.wst.server.core 以及conf目录
所以请仔细查找
然后我们打开conf下的context.xml这个文件
注意在准备修改这个文件前,请您一定先行备份
查找如下注释
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
需要修改的完整代码是
<!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <!-- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> -->以上代码的意思是说,如果您把注释去掉掉,那么在Tomcat重启时,session将不会持久化,如果您继续注释,那么在重启Tomcat时,session将会继续持久化
也就是说,您去掉注释,session将在tomcat重启时被所有的参数值
修改后的代码如下
<!-- Uncomment this to disable session persistence across Tomcat restarts --> <Manager pathname="" /> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
此外,如果不是在eclipse中以插件的形式启动Tomcat
而是直接启动Tomcat的话,修改方法一样的
需要修改的文件详细地址如下
D:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\context.xml
注意修改前,一定要先行备份。
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情