Tomcat设置session超时的几种方式

本文介绍如何在不同层级设置Tomcat的会话超时时间,包括Web容器级别、Web应用级别、应用程序代码级别及运行时Context配置级别。详细说明了每种设置方式的方法及其优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat的会话超时可以在多个级别上设置:tomcat实例级别、Web应用级别、servlet级别以及运行时Context代码级别。 较低级别的设定会覆盖较高级别的设定。 

 

Tomcat可以在以下几个地方设置session超时:

 

1 Web容器级别

在conf/web.xml中

Xml代码   收藏代码
  1. <!-- ==================== Default Session Configuration ================= -->  
  2.   <!-- You can set the default session timeout (in minutes) for all newly   -->  
  3.   <!-- created sessions by modifying the value below.                       -->  
  4.   
  5.     <session-config>  
  6.         <session-timeout>30</session-timeout>  
  7.     </session-config>  

 

这里是以分钟为单位的,默认是30分;

 

2 webapp级别

在webapp中的 WEB-INF/web.xml

Xml代码   收藏代码
  1. <!-- 配置Session失效时间 -->  
  2. <session-config>  
  3.         <session-timeout>30</session-timeout>  
  4. </session-config>  

也是以min为单位;

 

3 应用程序代码中:硬编码

Java代码   收藏代码
  1. session.setMaxInactiveInterval(30*60);//以秒为单位  

 

优先级,越细粒度优先级越高,也就是3>2>1

 

4 还要一种配置,但现在比较少见了,因为需要将Context配置在server.xml里:

这就是修改conf/server.xml

Xml代码   收藏代码
  1. <Context path="/test" docBase="/home/httpd/html/test"  
  2.     defaultSessionTimeOut="3600" isWARExpanded="true"  
  3.     isWARValidated="false" isInvokerEnabled="true"  
  4.     isWorkDirPersistent="false"/>  

 单位为秒

 

 

附:

重启时保持会话 
    在关闭Tomcat实例/取消Web应用部署时,缺省会把当前的活动会话保存到硬盘上,并在重启启动/部署 时在把会话从硬盘上加载到内存中。 
    文件保存在各目录下的SESSIONS.SER中。有时可能会话中保存了敏感信息,或者不希望使用这个特 性,可以配置Context.xml文件关闭这个选项。 
    配置 manager.pathname == ""即可,形如: 
                <Manager pathname="" />   


文章转载于:http://jiangshuiy.iteye.com/blog/1843622



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值