tomcat 设置 session 过期时间

本文介绍了三种设置Session超时的方法:通过配置Tomcat的server.xml、web.xml以及在程序中直接设置。这些方法能有效避免刚登录即超时的问题。

由于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中定义: 
<session-config> 
<session-timeout>20</session-timeout> 
</session-config> 

3. 在程序中定义: 
session.setMaxInactiveInterval(30*60); 
设置单位为秒,设置为-1永不过期

设置Tomcatsession有效期有多种方法,以下是具体介绍: ### 修改配置文件 #### 在server.xml中定义Context 在`server.xml`中定义`Context`时,可使用`defaultSessionTimeOut`属性设置过期时间,单位为秒。示例如下: ```xml <Context path="/test" docBase="/test" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/> ``` 上述代码将`/test`应用的session过期时间设置3600秒,即1小时[^2][^4]。 #### 在web.xml中通过参数指定 可以在`tomcat/conf/web.xml`中修改`session-timeout`的值,该设置TOMCAT全局默认的;也可以在具体项目的`WEB-INF/web.xml`中设置该应用所使用的时间设置单位为分钟。示例如下: ```xml <session-config> <session-timeout>30</session-timeout> </session-config> ``` 以上代码将session过期时间设置为30分钟[^1][^2][^3]。 ### 在程序中设置 在程序中可通过Servlet API直接修改session过期时间设置单位为秒,设置为 -1 表示永不过期。示例如下: ```java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; // 获取当前的HttpSession对象 HttpSession ses = request.getSession(); // 设置session的最大不活动时间为10秒 ses.setMaxInactiveInterval(10); ``` 上述代码将当前session过期时间设置为10秒[^2]。 ### 配置session持久化 配置Tomcatsession持久化也能对session有效期产生影响。示例如下: ```xml <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true" maxActiveSession="-1" minIdleSwap="0" maxIdleSwap="30" maxIdleBackup="0"> <Store className="org.apache.catalina.session.FileStore" checkInterval="60" directory="../session"/> </Manager> ``` 通过这种方式可以对session的持久化和过期策略进行更细致的配置[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值