session過期的三種方法


 

JavaWeb設置session失效時間的三種方式以及注意事項
1、通過web容器配置
2、通過項目中的web.xml中配置
3、通過java代碼動態配置
4、優先級

當用戶登陸系統后,服務器會設置一個當前session失效的時間,以確保在用戶長時間不與服務器交互,自動銷毀session,退出登錄,釋放資源。
1、通過web容器配置


         在web容器中設置,以Tomcat-9.0.16為例,在安裝目錄conf\web.xml文件中找到session-config元素,以下是默認配置:

   tomcat默認session超時時間為30分鍾,可以根據需要修改,負數或0為永不失效。

   需要注意這里時間單位為分鍾,參數必須為整數。

     由於在服務器中設置,則session設置的時間是根據服務器來計算的,而不是客戶端。所以如果是在調試程序,應該是修改服務器端時間來測試,而不是客戶端。

 

2、通過項目中的web.xml中配置


在項目的web.xml中配置,以Eclipse for JavaEE為例,在WebContent\WEB-INF\lib文件夾下打開web.xml(如沒有則手動創建)

同樣,時間單位為分鍾,這里表示session在創建后10分鍾后失效

 

3、通過java代碼動態配置
  session.setMaxInactiveInterval(10) ; //設置非活躍間隔時間

  setMaxInactiveInterval(int second)不同於以上兩種方法,並且有幾個注意點:

    (1)時間單位為秒

    (2)此方法表示當前session在指定時間內若沒有與服務器發生任何交互后失效

    (3)期間用戶的任何活動都將刷新session的失效時間,例如在10秒內用戶刷新頁面將重新計算失效時間

 

4、優先級
如果上述三種方法都設置了,那么優先級按照從高到低:代碼設置 > 項目web.xml設置 > 容器web.xml設置(3>2>1)


免責聲明!

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



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