设置Tomcat session 有效时间

Tomcat的会话超时能够在多个级别上设置:tomcat实例级别、Web应用级别、servlet级别以及运行时Context代码级别。 较低级别(粒度细)的设定会覆盖较高级别的设定。 
1. 在tomcat 容器 的conf/web.xml中,这里是以分钟为单位的,默认是30minjava

<!-- ==================== Default Session Configuration ================= -->  
  <!-- You can set the default session timeout (in minutes) for all newly   -->  
  <!-- created sessions by modifying the value below.                       -->  
  
    <session-config>  
        <session-timeout>30</session-timeout>  
    </session-config>

2.在webapp中的 WEB-INF/web.xml,这里是以分钟为单位的,默认是30minweb

<!-- 配置Session失效时间 -->  
<session-config>  
        <session-timeout>30</session-timeout>  
</session-config>

3. 在程序中经过servlet api直接修改,设置单位为秒,设置为-1永不过时api

HttpSession ses = request.getSession(); 

ses.setMaxInactiveInterval(10); 

4. 在server.xml中定义context时采用以下定义tomcat

<!-- 超时时间3600s -->
<Context path="/test" 

  docBase="D://test"    
  
  defaultSessionTimeOut="3600" 

 isWARExpanded="true"

  isWARValidated="false" 

  isInvokerEnabled="true"    

  isWorkDirPersistent="false"
/> 

附:session

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

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
    
    <Manager pathname="" />
相关文章
相关标签/搜索