session超時時間的設定
在Java Web開發中,Session為我們提供了很多方便,Session是由瀏覽器和伺服器之間維護的。Session超時理解為:瀏覽器和伺服器之間建立了一個Session,由於客戶端長時間(休眠時間)沒有與伺服器互動,伺服器將此Session銷燬,客戶端再一次與伺服器互動時之前的Session就不存在了。
設定Session超時時間方式:
方式一:
在web.xml中設定session-config如下:
<session-config>
<session-timeout>2</session-timeout>
</session-config>
即客戶端連續兩次與伺服器互動間隔時間最長為2分鐘,2分鐘後session.getAttribute()獲取的值為空
API資訊:
session.getCreationTime() 獲取session的建立時間
session.getLastAccessedTime() 獲取上次與伺服器互動時間
session.getMaxInactiveInterval() 獲取session最大的不活動的間隔時間,以秒為單位120秒。
方式二:
在Tomcat的/conf/web.xml中session-config,預設值為:30分鐘
<session-config>
<session-timeout>30</session-timeout>
</session-config>
方式三:
在Servlet中設定
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60);//單位為秒
說明:
1.優先順序:Servlet中API設定 > 程式/web.xml設定 > Tomcat/conf/web.xml設定
2.若訪問伺服器session超時(本次訪問與上次訪問時間間隔大於session最大的不活動的間隔時間)了,即上次會話結束,但伺服器與客戶端會產生一個新的會話,之前的session裡的屬性值全部丟失,產生新的sesssionId
3.客戶端與伺服器一次有效會話(session沒有超時),每次訪問sessionId相同,若程式碼中設定了session.setMaxInactiveInterval()值,那麼這個session的最大不活動間隔時間將被修改,並被應用為新值。
4.Session的銷燬(代表會話週期的結束):在某個請求週期內呼叫了Session.invalidate()方法,此請求週期結束後,session被銷燬;或者是session超時後自動銷燬;或者客戶端關掉瀏覽器
5.對於JSP,如果指定了<%@ page session="false"%>,則在JSP中無法直接訪問內建的session變數,同時也不會主動建立session,因為此時JSP未自動執行request.getSession()操作獲取session。
總結:
在程式開發過程中,我們可以在客戶端每次與伺服器互動時檢查SessionID(Session中屬性值,非HttpServlet環境開發中也可以用其它的Key值代替),用於會話管理。
相關文章
- tomcat 設定session過期時間(四種方式)TomcatSession
- 使用requests庫解決Session物件設定超時的問題Session物件
- linux-wdt 原理和任意超時時間設定的解決方法Linux
- MongoDB 超時設定MongoDB
- SSH 超時設定
- 設定mysql 事務鎖超時時間 innodb_lock_wait_timeoutMySqlAI
- **java設定一段程式碼執行超時時間(轉)**Java
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- Linux時間設定系統時間、硬體時間和時間服務Linux
- CSocket設定超時(轉)
- MyBatis自動設定建立時間和更新時間MyBatis
- 記一次.net core 非同步執行緒設定超時時間非同步執行緒
- PHP CURL 業務呼叫第三方介面設定超時時間PHP
- 2.6.7 設定DDL鎖超時
- Linux設定和修改時間與時區Linux
- Ubuntu 時間不準,怎麼設定NTP時間同步?Ubuntu
- WinAppDriver 等待時間設定技巧APP
- localStorage設定過期時間
- linux系統時間設定Linux
- js時間顯示設定JS
- Linux設定系統時間Linux
- localStorage設定儲存時間
- redis設定過期時間Redis
- 給 Angular 伺服器端渲染應用設定一個渲染超時時間Angular伺服器
- 關於 session 未到設定的過期時間就過期的問題(分享坑點)Session
- libevent設定超時後取消超時(bufferevent_set_timeouts取消超時無效問題)
- win10要如何設定更新時間_win10怎麼設定更新時間Win10
- Ubuntu、CentOS修改時區、設定24小時時間格式教程。UbuntuCentOS
- 積木報表設定時間
- JavaScript 設定cookie 過期時間JavaScriptCookie
- layui laydate日期時間範圍,時間預設設定為23:59:59UI
- 【Python】Python 使用http時間同步設定系統時間原始碼PythonHTTP原始碼
- php 和 nginx 的幾個超時時間PHPNginx
- dubbo 超時設定和原始碼分析原始碼
- 電腦螢幕時間長短在哪裡設定 電腦螢幕息屏時間設定
- spring security:ajax請求的session超時處理SpringSession
- JS設定時間格式為2010-01-01,以及時間加減JS
- element-ui 時間選擇器設定時間選擇範圍UI
- Nodered學習記錄-時間戳和時區設定時間戳