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