Cookie ,Session
會話技術
?
?
從打開一個瀏覽器訪問某個站點,到關閉這個瀏覽器的整個過程,成為一次會話。會話技術就是記錄這次會話中客戶端態的狀與數據的。
會話技術分為Cookie和Session:
Cookie:數據存儲在客戶端本地,減少服務器端的存儲的壓力,安全性不好,客戶端可以清除cookie
Session:將數據存儲到服務器端,安全性相對好,但增加服務器的壓力
?
?
Cookie
默認有效時間,一次會話中
Cookie在傳輸中無法傳中文
?
創建Cookie對象:
Cookie cookie=new Cookie("名","值");
該cookie會以響應頭的形式發送給客戶端
?
設置Cookie在客戶端的持久化時間: 單位:秒
cookie.setMaxAge(60*2); //時間到后自動清除
如果不設置持久化時間,cookie會存儲在瀏覽器的內存中,瀏覽器關閉 cookie信息銷毀(會話級別的cookie),如果設置持久化時間,cookie信息會??? 被持久化到瀏覽器的磁盤文件里
?
?
設置Cookie攜帶路徑
cookie.setPath("/WEB07"); //只有訪問
如果不設置攜帶路徑,那么默認產生該Cookie資源下的路徑都攜帶
?
?
發送Cookie給客戶端
response.addCookie(cookie);
?
?
刪除Cookie:
用同名同路徑的持久化時間為0的Cookie覆蓋
?
?
獲取客戶端攜帶給服務器的Cookie
Cookie[]? cookie=request.getCookies();
?
獲取Cookie的name:
getName();
?
獲取Cookie的Value:
getValue();
?
?
?
Session
Session技術是將數據存儲在服務器端的技術,會為每個客戶端都創建一塊內存空間?? 存儲客戶的數據,但客戶端需要每次都攜帶一個標識ID去服務器中尋找屬于自己的內??????? 存空間。所以說Session的實現是基于Cookie,Session需要借助于Cookie存儲客戶的唯一性標識JSESSIONID
?
Session對象的生命周期:
創建:
第一次執行request.getSession()時創建
銷毀:
服務器關閉時
服務器端的資源無任何操作30分鐘
?
時間可以在工程的web.xml中進行配置
<session-config>
??????? <session-timeout>30</session-timeout>
</session-config>
手動銷毀session
session.invalidate();
?
?
獲得Session對象
HttpSession session = request.getSession();
?
獲取JSESSIONID
String id=session.getId();
?
Session也是存儲數據的區域對象,所以通用三個方法:
session.setAttribute(String name,Object obj);? //存值
session.getAttribute(String name);? //取值
session.removeAttribute(String name);? //刪除
?
獲取JSESSIONID
String id=session.getId();
?
當創建Session時會自動創建一個Cookie, name為JSESSIONID,值為隨機產生的一串數,
通過JSESSIONID找Session域內的值,當瀏覽器關閉再打開時,Cookie會重新創建,JSESSIONID
的值也會變化,要想關閉瀏覽器在打開后還能找回原有的值就需要重新創建個同名Cookie設置持久化時間替代原有的Cookie
代碼如下:
//獲取Session
HttpSession session=request.getSession();
//獲取JSESSIONID
String id=session.getId();
//向Session域中存數據
session.setAttribute("goods", 123);
??????
//將JSESSIONID 持久化
//手動創建Cookie
Cookie cookie=new Cookie("JSESSIONID",id);
??????
cookie.setMaxAge(60*3);//設置持久化時間時間
response.addCookie(cookie);//發送
?
response.getWriter().write("JSESSIONID:"+id);
?
轉載于:https://www.cnblogs.com/hhthtt/p/10708624.html
總結
以上是生活随笔為你收集整理的Cookie ,Session的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ3028食物——生成函数+泰勒展
- 下一篇: 稳坐视频云行业第一,阿里云将用边缘计算开