cookie&&Session技術(shù)

購物過程分析
使用cookie技術(shù)

1. 會話技術(shù)

從打開一個瀏覽器訪問某個站點(diǎn),到關(guān)閉這個瀏覽器的整個過程,成為一次會話。會 話技術(shù)就是記錄這次會話中客戶端的狀態(tài)與數(shù)據(jù)的。
會話技術(shù)分為Cookie和Session:
Cookie:數(shù)據(jù)存儲在客戶端本地,減少服務(wù)器端的存儲的壓力,安全性不好,客戶端 可以清除cookie
Session:將數(shù)據(jù)存儲到服務(wù)器端,安全性相對好,增加服務(wù)器的壓力.

1.服務(wù)器端向客戶端發(fā)送一個Cookie

1)創(chuàng)建Cookie:

Cookie cookie = new Cookie(String cookieName,String cookieValue);

示例:

Cookie cookie = new Cookie("username","zhangsan");

那么該cookie會以響應(yīng)頭的形式發(fā)送給客戶端:

注意:Cookie中不能存儲中文

2)設(shè)置Cookie在客戶端的持久化時間:

cookie.setMaxAge(int seconds); ---時間秒

注意:如果不設(shè)置持久化時間,cookie會存儲在瀏覽器的內(nèi)存中,瀏覽器關(guān)閉 cookie信息銷毀(會話級別的cookie),如果設(shè)置持久化時間,cookie信息會 被持久化到瀏覽器的磁盤文件里

示例:

cookie.setMaxAge(10*60);

設(shè)置cookie信息在瀏覽器的磁盤文件中存儲的時間是10分鐘,過期瀏覽器 自動刪除該cookie信息

3)設(shè)置Cookie的攜帶路徑:

cookie.setPath(String path);

注意:如果不設(shè)置攜帶路徑,那么該cookie信息會在訪問產(chǎn)生該cookie的 web資源所在的路徑都攜帶cookie信息

示例:

cookie.setPath("/WEB16");

代表訪問WEB16應(yīng)用中的任何資源都攜帶cookie

cookie.setPath("/WEB16/cookieServlet");

代表訪問WEB16中的cookieServlet時才攜帶cookie信息

4)向客戶端發(fā)送cookie:

response.addCookie(Cookie cookie);

5)刪除客戶端的cookie:

如果想刪除客戶端的已經(jīng)存儲的cookie信息,那么就使用同名同路徑的持久化時 間為0的cookie進(jìn)行覆蓋即可

2. session技術(shù)

session原理

HttpSession session = request.getSession();
此方法會獲得專屬于當(dāng)前會話的Session對象,如果服務(wù)器端沒有該會話的Session 對象會創(chuàng)建一個新的Session返回,如果已經(jīng)有了屬于該會話的Session直接將已有 的Session返回(實(shí)質(zhì)就是根據(jù)JSESSIONID判斷該客戶端是否在服務(wù)器上已經(jīng)存在 session了)

注意: 客戶端:IE、火狐、谷歌等等代表不同的客戶端.
注意: 如果在同一個瀏覽器去訪問服務(wù)器不同頁面等是不登錄,那么他們使用的是同一個session

session失效:

1. session過期: 默認(rèn)過期30分鐘.
2. 服務(wù)器關(guān)閉: 因?yàn)閟ession存在服務(wù)器內(nèi)存中.

3. session持久化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容