設置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="" />
相關文章
相關標籤/搜索