java Session缓存
Session原理
?
?
?
????1.?原理:服務器端會話技術,在一次會話的多次請求間共享數據,將數據保存在服務器端的對象中。HttpSession
????2.?快速入門:
????????1.?獲取HttpSession對象:
????????????HttpSession session = request.getSession();
????????2.?使用HttpSession對象方法:
????????????Object getAttribute(String name)??
????????????void setAttribute(String name, Object value)
????????????void removeAttribute(String name)??
????
????3.?Session的實現是依賴于Cookie的。
????4.?細節:
????????1.?當客戶端關閉后,服務器不關閉,兩次獲取session是否為同一個?
????????????* 默認情況下。不是。
????????????* 如果需要相同,則可以創建Cookie,鍵為JSESSIONID,設置最大存活時間,讓cookie持久化保存。
?????????????????Cookie c = new Cookie("JSESSIONID",session.getId());
?????????????????c.setMaxAge(60*60);
?????????????????response.addCookie(c);
????????2.?客戶端不關閉,服務器關閉后,兩次獲取的session是同一個嗎?
????????????* 不是同一個,但是要確保數據不丟失。tomcat自動完成以下工作
????????????????* session的鈍化:
????????????????????* 在服務器正常關閉之前,將session對象系列化到硬盤上
????????????????* session的活化:
????????????????????* 在服務器啟動后,將session文件轉化為內存中的session對象即可。
????????????????
????????3.?session什么時候被銷毀?
????????????1.?服務器關閉
????????????2.?session對象調用invalidate() 。
????????????3.?session默認失效時間 30分鐘
????????????????選擇性配置修改????
????????????????<session-config>
????????????????????<session-timeout>30</session-timeout>
????????????????</session-config>
?????5.?session的特點
?????????1.?session用于存儲一次會話的多次請求的數據,存在服務器端
?????????2.?session可以存儲任意類型,任意大小的數據
????????* session與Cookie的區別:
????????????1.?session存儲數據在服務器端,Cookie在客戶端
????????????2.?session沒有數據大小限制,Cookie有
????????????3.?session數據安全,Cookie相對于不安全
?
總結
以上是生活随笔為你收集整理的java Session缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: niceyoo的2020年终总结-202
- 下一篇: Maven项目中使用JUnit进行单元测