Session有效期设置

方法一:
在使用了struts2框架的任何地方使用
ServletActionContext.getRequest().getSession().setMaxInactiveInterval(xxx);

方法二:
在Action中定义一个HttpServletRequest的成员对象req;
Action类实现ServletRequestAware接口,实现其中的方法;
在实现的方法中编写: req=方法参数;
然后在该Action中任何需要用到Session的地方使用req.getSession()......

方法三:
在工程的 web.xml中 设置session的有效期
<session-config>
   <session-timeout>30</session-timeout>
</session-config>

session-timeout元素用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。如果session-timeout元素的值为零或负数,则表示会话将永远不会超时。 session-timeout的取值范围是1-1440。



setMaxInactiveInterval和session-config的比较:
1、setMaxInactiveInterval的优先级高,如果setMaxInactiveInterval没有设置,则默认是session-config中设置的时间。
2、setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web服务的。
3、setMaxInactiveInterval的参数是秒,session-config当中配置的session-timeout是分钟。
设置Tomcat中session有效期有多种方法,以下是具体介绍: ### 修改配置文件 #### 在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持久化 配置Tomcat的session持久化也能对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
发出的红包

打赏作者

macrobn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值