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。

实验之后果然可以了。

⚠️ **GitHub.com Fallback** ⚠️