HTTPSession对象知识总结
HTTPSession對象
HTTPSession對象的特點;
1.HTTPSession對象是保存在服務(wù)器端的;
2.HTTPSession允許存儲任何數(shù)據(jù)類型;
3.HTTPSession存儲數(shù)據(jù)大小無限制;
4.HTTPSession對象存儲數(shù)據(jù)結(jié)構(gòu)為key:value
HTTPSession對象的使用
創(chuàng)建HTTPSession對象;
在HttpSession對象的創(chuàng)建是通過request.getSession();方法創(chuàng)建的,這個方法會判斷請求中是否有sessionID,如果有則返回此ID對應(yīng)的HTTPSession對象,如果沒有則會創(chuàng)建一個新的HTTPSession對象并為此對象創(chuàng)建一個sessionID,在響應(yīng)中通過cookie寫回到客戶端瀏覽器中;
Request.getSession()方法還有一個重載方法,為request.getSession(true|false);如果參數(shù)為true則作用于無參方法相同,如果參數(shù)為false則會根據(jù)sessionID返回對應(yīng)的HTTPSession對象,如果沒有sessionID則不會創(chuàng)建新的HTTPSession對象;
代碼示例:
(包括向session對象中添加數(shù)據(jù),配置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>注意:服務(wù)端會根據(jù)不同的客戶端瀏覽器創(chuàng)建不同的HTTPSession對象;
獲取HTTPSession中的數(shù)據(jù);
1.通過key 獲取HTTPSession中的數(shù)據(jù),返回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中設(shè)置HTTPSession對象的銷毀時間(時間以分鐘計算);
<session-config> <session-timeout>1</session-timeout> </session-config>2.利用HTTPSession對象的invalidate()方法,銷毀;
詳情請看創(chuàng)建HTTPSession對象的代碼部分;
HTTPSession對象的生命周期
HTTPSession對象的生命周期并不確定,它的創(chuàng)建取決于什么時候第一次調(diào)用getSession()或getSession(true)方法,生命周期結(jié)束取決于xml文件中配置的銷毀時間或是調(diào)用invalidate()方法,如果沒有配置銷毀時間,或是沒有調(diào)用invalidate()方法,默認(rèn)銷毀時間為30分鐘;
使用HTTPSession對象存儲數(shù)據(jù)的建議
HTTPSession對象是保存在瀏覽器中的,安全性較高;可以在HTTPSession對象中存儲數(shù)據(jù);
但由于HTTPSession對象的生命周期不固定,所以不建議存儲業(yè)務(wù)數(shù)據(jù);一般情況下可以存儲一些客戶登錄信息;
總結(jié)
以上是生活随笔為你收集整理的HTTPSession对象知识总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过Cookie实现客户端与服务端会话的
- 下一篇: 常用获取线程基本信息的方法(新手专属)