Session 1. 概念:伺服器端會話技術,在一次會話的多次請求間共用數據,將數據保存在伺服器端對象中。HttpSession 2. 快速入門 1. 獲取HttpSession對象 2. HttpSession對象: object getAttribute(String name) void se ...
Session
-
概念:伺服器端會話技術,在一次會話的多次請求間共用數據,將數據保存在伺服器端對象中。HttpSession
-
快速入門
-
獲取HttpSession對象
HttpSession session = req.getSession();
-
HttpSession對象:
- object getAttribute(String name)
- void setAttribute(String name,Object value)
- void removeAttribute(String name)
-
-
原理
- Session的實現是依賴於Cookie的
-
細節
-
當客戶端關閉後,伺服器不關閉,兩次獲取Session是否為同一個嗎?
-
預設情況下,不是
-
如果需要相同,則可以創建Cookie,鍵為JSESSIONID,設置最大存活時間,讓cookie持久化保存
Cookie c = new Cookie("JSESSIONID",session.getId()); c.setMaxAge(60*60); response.addCookie(c);
-
-
當客戶端不關閉,伺服器關閉後,兩次獲取Session是否為同一個?
- 不是同一個,但是要確保數據不丟失
- session的鈍化
- 在伺服器正常關閉之前,將session對象序列化到硬碟上
- session的活化
- 在伺服器啟動後,將session文件轉化為記憶體中的Session對象即可
- session的鈍化
- 不是同一個,但是要確保數據不丟失
-
session什麼時候被銷毀?
- 伺服器關閉
- session對象調用invalidate()。
- session預設失效時間 30分鐘,可以去web.xml下的 session1-config標簽下修改
-
-
特點
- session用於存儲一次會話的多次請求的數據,存在伺服器端
- session可以存儲任意類型,任意大小的數據
-
session於cookie的區別
- session存儲數據在服務端,cookie在客戶端
- session沒有數據大小限制,cookie有
- session數據安全,cookie相對於不安全