JSP內置對象——session


session
session表示客戶端與服務器的一次會話
Web中的session指的是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所進過的這段時間,也就是用戶瀏覽這個網站所花費的時間
從上述定義中可以看到,session實際上是一個特定的時間概念
在服務器的內存當中保存着不同用戶的session,session和用戶是一一對應的。

session對象
session對象是一個JSP內置對象。
session對象在第一個JSP頁面被裝載時自動創建,完成會話期管理。
從客戶端打開瀏覽器並連接到服務器開始,到客戶端關閉瀏覽器離開這個服務器結束,被稱為一個會話。
當一個客戶訪問一個服務器,可能會在服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要session對象。
session對象是HttpSession類的實例。

session對象常用方法如下:
long getCreationTime() 返回session創建時間
String getId() 返回session創建時JSP引擎為他設的唯一ID號
void setAttribute(String name, Object value) 使用指定名稱將對象綁定到此會話
Object getAttribute(String name) 返回此會話中的指定名稱綁定在一起的對象,如果沒有對象綁定在該名稱下,則返回null
String[] getValueNames() 返回一個包含此session中所有可用屬性的數組
int getMaxInactiveInterval() 返回兩次請求間隔多長時間此session被取消(單位:秒)

session的生命周期
session的生命周期包括三個階段:創建、活動、銷毀
創建:
當客戶端第一次訪問某個jsp或者servlet的時候,服務器會為當前會話創建一個SessionId,每次客戶端向服務器發送請求時,都會將此sessionId攜帶過去,服務端會對此sessionId進行校驗。
活動:
某次會話當中通過超鏈接打開的新頁面屬於同義詞會話。
只要當前頁面沒有全部關閉,重新打開新的瀏覽器窗口訪問同一項目資源時屬於同一次會話。
本次會話的所有頁面都關閉后再重新訪問某個Jsp或者Servlet將會創建新的會話。
注意事項:注意原有會話還存在,只是這個舊的SessionID任然存在服務端,只不過再也沒有客戶端會攜帶它然后交予服務端校驗。
銷毀:
Session的銷毀只有三種方式:
1.調用了session.invalidate()方法
2.session過期(超時)
3.服務器重新啟動

Tomcat默認session超時時間為30秒。
設置session超時時間有兩種方式:
1.session.setMaxInactiveInterval(時間);//單位是秒
2.在web.xml中配置
<session-config>
<session-timeout>
10
</session-timeout>
</session-config> // 單位是分鍾
(注:web.xml文檔在項目的WEB-INF目錄下)

 


免責聲明!

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



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