Java中會話session的過期時間配置(容器session有效期),以及session三種超時設置的優先級說明[Java web]


·

Java中會話session的過期時間配置(容器session有效期),
以及session三種超時設置的優先級說明[Java web] 

 [Java web] 項目開發中,默認的Session存活時間是30分鍾
<session-config> <session-timeout>30</session-timeout> </session-config>

 

一、Java web開發中,三種會話Session過期時間(Session)設置位置和方法

以下以Tomcat8.5.27為例(其他版本可以參考替換); 為了方便,我們作以下簡寫。

 簡寫: Tomcat的安裝目錄簡寫為{Tomcat_home};
             工程目錄簡寫為{MyProject};

A.   在web容器中設置(此處以tomcat為例)

在{Tomcat_home}\conf\web.xml中設置, {Tomcat_home}是binconf等目錄所在的路徑,例如 E:\Apache-TomCat\TomCat8.5.27\

以下是tomcat 8中的默認配置:

<!-- ==================== 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>90</session-timeout> 
</session-config> 

</session-config>Tomcat默認session超時時間為30分鍾;可以根據需要修改,負數或0為不限制session失效時間。

 

 

B.   在工程的web.xml中設置

在{Tomcat_home}\WebApps\{MyProject}\WEB-INF\web.xml中設置, WebApps目錄 是docs、examples、、manager、ROOT等目錄所在的路徑,
    例如 E:\Apache-TomCat\TomCat8.5.27\WebApps\[工程名稱]\\WEB-INF\web.xml

<!-- 時間單位為分鍾   -->
<session-config>
      <session-timeout>180</session-timeout>
</session-config>

工程和Web容器一樣,默認的session超時時間也是30分鍾;可以根據需要修改,負數或0為不限制session失效時間。

 


C.  通過java代碼設置

  在Java代碼中使用java函數

session.setMaxInactiveInterval(100*60);  //以秒為單位

       上方設置的有效期是 100分鍾 (100* 60s)

特別注意:這里的單位是秒(s) ; 如果設置的值為零或負數,則表示會話將永不超時!

 

二、這三種設置session有效期方法的優先級

此處優先級按上面的三種方法(A、B、C)來展示,

如果A、B、C三種方法同時使用時的優先級如下:
    三種設置session有效期方式的優先級:  A < B  < C 

 

也就是說,如果同一個工程項目中,如果同時采用了上面的三種方式,則生效的是C :會話超時時間為100分鍾 (Java代碼中的部分優先生效)

 

另外,一般情況下,很少有人會直接在Java代碼中設置session的過期時間,所以,只需要工程項目的 \WebApps\{MyProject}\WEB-INF\web.xml中設置即可。
(可以直接在War包中做好控制)

 

···

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM