HTTPSession对象知识总结
HTTPSession對象
HTTPSession對象的特點;
1.HTTPSession對象是保存在服務器端的;
2.HTTPSession允許存儲任何數據類型;
3.HTTPSession存儲數據大小無限制;
4.HTTPSession對象存儲數據結構為key:value
HTTPSession對象的使用
創建HTTPSession對象;
在HttpSession對象的創建是通過request.getSession();方法創建的,這個方法會判斷請求中是否有sessionID,如果有則返回此ID對應的HTTPSession對象,如果沒有則會創建一個新的HTTPSession對象并為此對象創建一個sessionID,在響應中通過cookie寫回到客戶端瀏覽器中;
Request.getSession()方法還有一個重載方法,為request.getSession(true|false);如果參數為true則作用于無參方法相同,如果參數為false則會根據sessionID返回對應的HTTPSession對象,如果沒有sessionID則不會創建新的HTTPSession對象;
代碼示例:
(包括向session對象中添加數據,配置session對象銷毀時間,以及銷毀方法)
Xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"> <servlet><servlet-name>createHttpSessionServlet</servlet-name><servlet-class>com.bjsxt.servlet.CreateHttpSessionServlet</servlet-class></servlet><servlet-mapping><servlet-name>createHttpSessionServlet</servlet-name><url-pattern>/createSession.do</url-pattern></servlet-mapping> 配置session對象銷毀的時間為1分鐘; <session-config><session-timeout>1</session-timeout> </session-config> </web-app>注意:服務端會根據不同的客戶端瀏覽器創建不同的HTTPSession對象;
獲取HTTPSession中的數據;
1.通過key 獲取HTTPSession中的數據,返回object;
Session.getAttribute(“key”);
2.獲取sessionID,返回String
Session.getId();
Xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"> <servlet><servlet-name>getHttpSessionServlet</servlet-name><servlet-class>com.bjsxt.servlet.GetHttpSessionServlet</servlet-class></servlet><servlet-mapping><servlet-name>getHttpSessionServlet</servlet-name><url-pattern>/getSession.do</url-pattern></servlet-mapping> </web-app>HTTPSession對象的銷毀
1.在xml中設置HTTPSession對象的銷毀時間(時間以分鐘計算);
<session-config> <session-timeout>1</session-timeout> </session-config>2.利用HTTPSession對象的invalidate()方法,銷毀;
詳情請看創建HTTPSession對象的代碼部分;
HTTPSession對象的生命周期
HTTPSession對象的生命周期并不確定,它的創建取決于什么時候第一次調用getSession()或getSession(true)方法,生命周期結束取決于xml文件中配置的銷毀時間或是調用invalidate()方法,如果沒有配置銷毀時間,或是沒有調用invalidate()方法,默認銷毀時間為30分鐘;
使用HTTPSession對象存儲數據的建議
HTTPSession對象是保存在瀏覽器中的,安全性較高;可以在HTTPSession對象中存儲數據;
但由于HTTPSession對象的生命周期不固定,所以不建議存儲業務數據;一般情況下可以存儲一些客戶登錄信息;
總結
以上是生活随笔為你收集整理的HTTPSession对象知识总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过Cookie实现客户端与服务端会话的
- 下一篇: 常用获取线程基本信息的方法(新手专属)