session失效的设置方法可以分为两大类四小种:
(1) 中间件(以Tomcat为例)
1.1. tomcat/conf/web.xml(推荐)
1.2. tomcat/conf/server.xml
(2)webapp(程序本身)
2.1. WEB-INF/web.xml(推荐)
2.2. Java硬编码
1.通过tomcat配置session失效时间
1.1.tomcat/conf/web.xml
<session-config>
<!-- session失效时间:30分钟 -->
<session-timeout>30</session-timeout>
</session-config>
1.2.tomcat/conf/server.xml
<!-- session失效时间:3600秒(30分钟) -->
<Context path="/project" docBase="/home/project" defaultSessionTimeOut="3600" .../>
2.在程序中控制session失效时间
2.1.WEB-INF/web.xml
<session-config>
<!-- session失效时间:30分钟 -->
<session-timeout>25</session-timeout>
</session-config>
2.2.Java硬编码
//获取session
HttpSession session = request.getSession(true);
//设置失效时间为35 * 60秒(35分钟)
session.setMaxInactiveInterval(35 * 60);
注:若应用部署在tomcat下,session配置存在覆盖情况,需注意tomcat为外层超时设置,若tomcat失效,tomcat下部署应用的session也将失效,所以若tomcat和程序web.xml都配置了session timeout则需注意tomcat下超时配置和程序web.xml配置保持一致。