會話管理之Cookie

2021-07-15 04:36:09 字數 2640 閱讀 6843

1.會話控制

http協議有兩大缺點:

1.無狀態

利用cookie和session的技術可以解決無狀態的問題

2.純文字

利用beanutils可以解決純文字的問題,將文字封裝到物件裡。

伺服器不能通過http請求報文來識別瀏覽器,但是我們又有這個需求

(http無狀態的連線,不能滿足現狀的上網需求)

電影院的運作:

1.電影院要建立票

2.將電影票發給顧客

3.顧客帶著票去看電影

4.電影院要檢票

[1] cookie

伺服器以響應頭的形式將cookie傳送給瀏覽器,

response.addcookie(),該方法可以將cookie傳送給瀏覽器

瀏覽器以請求頭的形式將cookie發回給伺服器,request.getcookies(),

該方法可以獲得瀏覽器端的cookies陣列。

1.伺服器建立cookie

2.將cookie傳送給瀏覽器

3.瀏覽器帶著cookie來訪問伺服器

4.伺服器檢查瀏覽器的cookie

set-cookie: username=sunwukong

瀏覽器收到該響應頭以後,會自動儲存cookie資訊,並在以後的訪問中攜帶該cookie:

cookie: username=sunwukong; age=18

使用cookie

cookie cookie = new cookie(name,value);

response.addcookie(cookie);

cookie cookies = request.getcookies();

//判斷cookies是否為null

if(cookies!=null)

}

cookie一旦傳送給瀏覽器,那麼伺服器將不能直接修改。

但是可以通過使用同名cookie來替換瀏覽器已有的cookie的方式,來間接的修改。

瀏覽器收到新cookie以後,就會將老的cookie銷毀,然後使用新的cookie

刪除cookie指使瀏覽器不在儲存cookie,使cookie立即失效

//使name為username的cookie立即失效

//1.建立乙個name為username的cookie

cookie cookie = new cookie(「username」, 「aaa」);

//2.設定cookie的有效時間為0

cookie.setmaxage(0);

//3.將cookie傳送給瀏覽器,來替換同名cookie

response.addcookie(cookie);

cookie的有效時間

cookie傳送個瀏覽器以後,瀏覽器是不會永久儲存,也就是到了一定的時間以後瀏覽器會自動銷毀cookie

下次訪問伺服器時cookie將不再被攜帶

cookie的預設有效時間為一次會話(一次開啟關閉瀏覽器的過程)

同樣我們也可以手動指定cookie的有效時間

cookie.setmaxage(秒數);

//setmaxage用來設定cookie的最大有效時間,需要int型的引數,代表有效的秒數

//當引數大於0時,會設定為指定的秒數

//當引數等於0時,瀏覽器不會儲存cookie

//當引數小於0時,和不設定是一樣,當前會話有效

cookie.setmaxage(-100);

//設定乙個永久有效的cookie

cookie.setmaxage(60*60*24*365*10);

cookie的path

path指路徑,指瀏覽器在訪問哪些位址時該cookie有效

也就是說cookie預設的path是servlet專案的根目錄

//同樣我們也可以手動指定cookie的路徑

//cookie路徑由瀏覽器解析,所以需要加上專案名

//11_web_cookie/hello 指名凡是訪問專案根目錄下hello路徑下cookie都有效

cookie.setpath(「/11_web_cookie/hello」);

cookie的應用:

1.保持使用者的登入狀態

2.baidu廣告的精確推送

3.taobao目前儲存使用者名稱,也就是再次登入時不再需要輸入使用者名稱,只需要輸入密碼。

1.一旦使用者登入成功以後,下次在登入時,直接將使用者名稱顯示出來,使用者不需要再次輸入使用者名稱,只輸入密碼即可。

如果正確:則將使用者名稱儲存到乙個有效期7天的cookie中,並傳送給瀏覽器

然後重定向到login-success.jsp

登入失敗:暫時不考慮,預設登入成功

- 下次瀏覽器在訪問**時,直接將cookie中的使用者名稱讀取並在表單中回顯

cookie本身也是乙個鍵值對的形式< string name,string value>

獲取指定name的cookie的value值。

$,其中user是cookie的name。

會話技術之cookie

http協議具有無連線和無狀態的特點 在提高效率的同時會讓伺服器與瀏覽器變得冰冷 即使以很快的速度連續開啟兩次 伺服器依舊無法識別這是同乙個客戶 所以就需要使用會話技術使瀏覽器與伺服器相識 以及 可以讓瀏覽器訪問的不同指令碼之間資料共享 會話技術 包括 cookie技術和session技術 cook...

常用會話技術之cookie

通過瀏覽器將使用者資料存在客戶端的會話技術.cookie按key value方式來存值的.如果cookie沒有設定有效期,cookie中資料是存在客戶端的記憶體中.如果cookie設定了有效期,cookie中資料就存在客戶端的硬碟上。1 優點 減輕伺服器端的壓力 使用者第二次載入資料時效率高 可長久...

Cookie 會話控制

2.cookie的簡介 3.cookie的工作原理 4.cookie的基本使用 5.cookie有效性 持久化cookie 重點 6.cookie的應用 7.cookie的缺陷 http是無狀態的協議。一旦資料交換完畢,客戶端與伺服器端的連線就會關閉,再次交換資料需要建立新的連線,這就意味著伺服器無...