Session
Session是服務器端技術,利用這個技術,服務器在運行時可以為每一個用戶的瀏覽器創建一個其獨享的session對象,由于session為用戶瀏覽器獨享,所以用戶在訪問服務器的web資源時,可以把各自的數據放在各自的session中,當用戶再去訪問服務器中的其它web資源時,其它web資源再從用戶各自的session中取出數據為用戶服務。
Session與Cookie的區別
- Cookie基于瀏覽器,不安全,大小有限制
- Session技術把用戶的數據寫到用戶獨占的session中(服務器端)。
- 關閉瀏覽器Session消亡,沒法持久化
- Session對象由服務器創建,開發人員可以調用request對象的getSession方法得到session對象。
- session域對象,范圍一次會話范圍,存個人相關的數據。
Session的使用
HttpSession session = request.getSession();
- 如果第一次get,就會創建session,并放入session池中,以后就都從池中取出
- 響應的時候,會以Cookie的形式把Session在Session池中的Id返回給瀏覽器,用戶下一次請求的時候回帶上這個Cookie,如:
Cookie:JSESSIONID=BE985E34470E2BF96EBC403AAAE7F95B
相關API
- setAttribute(String name, Object value)
- Object getAttribute(String name)
- String getId() 獲取seesion的唯一的ID
- void invalidate() 銷毀的session
Session的應用場景
- 購物車
- 單點登錄(有時間做一下:保存用戶登錄信息,遍歷所有Session,所有Session可保存在Application)