tomcat 设置session过期时间(四种方式) - ashorefish/-software-test GitHub Wiki
1、在tomcat——>conf——>servler.xml文件中定义:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
2、在web.xml中定义:这个针对具体项目:
20
3、在程序中定义:这个就针对具体页面了: session.setMaxInactiveInterval(30*60);
4、配置tomcat的session持久化: <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true" maxActiveSession="-1" minIdleSwap="0" maxIdleSwap="30" maxIdleBackup="0"
或 maxActiveSessions-可处于活动状态的session数,default -1 不限制
checkInterval - 检查session是否过期的时间间隔,default 60s
saveOnRestart-服务器关闭时,是否将所有的session保存到文件中; minIdleSwap/maxIdleSwap-session处于不活动状态最短/长时间(s),sesson对象转移到File Store中;(-1表示没有限制) maxIdleBackup-超过这一时间,将session备份。(-1表示没有限制)
directory-文件存储位置work\Catalina\host name\web app\session\文件名.session
以下是设置session时间的3个方法: 1. 在tomcat——>conf——>servler.xml文件中定义: <Context path="/test" docBase="/test" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/> defaultSessionTimeOut="3600" 2. 项目所在目录下的 web.xml中定义: 20 3. 在程序中定义: session.setMaxInactiveInterval(30*60); 设置单位为秒,设置为-1永不过期 不知道这种设置会不会真正地起到作用的哦!
session.setTimeout(你设置的时间); ------>>> 这个也可以,但是和setMaxInactiveInterval有什么差别暂时没有体会。
实验: 刚才用方法2 改了tomcat 安装目录/conf/ 下的 web.xml 文件里的session-timeout 但是实验后没有效果,
困惑了一会儿,发现错了,觉得应该改 项目下的 web.xml 文件里的session-timeout。
实验之后果然可以了。