天天看點

設定Tomcat session 有效時間

Tomcat的會話逾時可以在多個級别上設定:tomcat執行個體級别、Web應用級别、servlet級别以及運作時Context代碼級别。 較低級别(粒度細)的設定會覆寫較進階别的設定。 

1. 在tomcat 容器 的conf/web.xml中,這裡是以分鐘為機關的,預設是30min

<!-- ==================== 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,這裡是以分鐘為機關的,預設是30min

<!-- 配置Session失效時間 -->  
<session-config>  
        <session-timeout>30</session-timeout>  
</session-config>  
           

3. 在程式中通過servlet api直接修改,設定機關為秒,設定為-1永不過期

HttpSession ses = request.getSession(); 

ses.setMaxInactiveInterval(10); 
           

4. 在server.xml中定義context時采用如下定義

<!-- 逾時時間3600s -->
<Context path="/test" 

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

 isWARExpanded="true"

  isWARValidated="false" 

  isInvokerEnabled="true"    

  isWorkDirPersistent="false"
/> 
           

附:

重新開機時保持會話 

    在關閉Tomcat執行個體/取消Web應用部署時,預設會把目前的活動會話儲存到硬碟上,并在重新開機啟動/部署 時在把會話從硬碟上加載到記憶體中。 

    檔案儲存在各目錄下的SESSIONS.SER中。有時可能會話中儲存了敏感資訊,或者不希望使用這個特 性,可以配置Context.xml檔案關閉這個選項。 

配置 manager.pathname == ""即可,形如: 

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
    
    <Manager pathname="" />
   
           

版權聲明:本文為CSDN部落客「weixin_34168880」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34168880/article/details/92006312