session
session表示客戶端與服務器的一次會話
Web中的session指的是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所進過的這段時間,也就是用戶瀏覽這個網站所花費的時間
從上述定義中能夠看到,session其實是一個特定的時間概念
在服務器的內存當中保存着不一樣用戶的session,session和用戶是一一對應的。web
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目錄下)session