* Cookie學(xué)習(xí)
*? ? ? 作用:解決了發(fā)送的不同請(qǐng)求數(shù)據(jù)的數(shù)據(jù)共享問題
*? ? ? 使用:
*? ? ? ? ? Cookie的創(chuàng)建和存儲(chǔ)
*? ? ? ? ? //創(chuàng)建Cookie對(duì)象
*? ? ? ? ? ? ? Cookie c=new Cookie(String name,String value);
*? ? ? ? ? //設(shè)置Cookie(可選)
*? ? ? ? ? ? ? //設(shè)置有效期
*? ? ? ? ? ? ? c.setMaxAge(int seconds);
*? ? ? ? ? ? ? //設(shè)置有效路徑
*? ? ? ? ? ? ? c.setPath(String uri);
*? ? ? ? ? //響應(yīng)Cookie信息給客戶端
*? ? ? ? ? ? ? resp.addCookie(c);
*? ? ? ? ? Cookie的獲取
*? ? ? ? ? ? ? //獲取cookie信息數(shù)組
*? ? ? ? ? ? ? Cookie[] cks=req.getCookies();
*? ? ? ? ? ? ? //遍歷數(shù)組獲取Cookies信息
*? ? ? ? ? ? ? ? ? 使用for循環(huán)遍歷即可丈牢,實(shí)例:
*? ? ? ? ? ? ? ? if(cks!=null){
*? ? ? ? ? ? ? ? ? for(Cookie c:cks){
* ? ? ? String name=c.getName();
* ? ? ? String value=c.getValue();
* ? ? ? System.out.println(name+":"+value);
* ? ? ? }
* ? ? ? }
* 注意:
*? ? 一個(gè)Cookie對(duì)象存儲(chǔ)一條數(shù)據(jù)蜜托,多條數(shù)據(jù)懂缕,可以多創(chuàng)建幾個(gè)Cookie對(duì)象進(jìn)行存儲(chǔ)。
* 特點(diǎn):
*? ? 瀏覽器端的數(shù)據(jù)存儲(chǔ)技術(shù)。
*? ? 存儲(chǔ)的數(shù)據(jù)聲明在服務(wù)器端霜浴。
*? ? 臨時(shí)數(shù)據(jù):存儲(chǔ)在瀏覽器的運(yùn)行內(nèi)存中柜某,瀏覽器關(guān)閉即失效。
*? ? 定時(shí)數(shù)據(jù):設(shè)置Cookie的有效期沧烈,存儲(chǔ)在客戶端的硬盤中掠兄,在有效期內(nèi)符合要求的請(qǐng)求都會(huì)附帶該信息。
問題:
HTTP 協(xié)議是沒有記憶功能的掺出,一次請(qǐng)求結(jié)束后徽千,相關(guān)數(shù)據(jù)會(huì)被銷毀。如果第二次的請(qǐng)求需要使用相同的請(qǐng)求數(shù)據(jù)怎么辦呢汤锨?難道是讓用戶再次請(qǐng)求書寫嗎?
解決:
使用 Cookie 技術(shù)
解釋:
Cookie 技術(shù)其實(shí)是瀏覽器端的數(shù)據(jù)存儲(chǔ)技術(shù)双抽,解決了不同請(qǐng)求需要使用相同的請(qǐng)求數(shù)據(jù)的問題。我們把請(qǐng)求需要共享的請(qǐng)求數(shù)據(jù)闲礼,存儲(chǔ)在瀏覽器端牍汹,避免用戶進(jìn)行重復(fù)的書寫請(qǐng)求數(shù)據(jù)铐维。但是哪些數(shù)據(jù)需要使用 Cookie 技術(shù)存儲(chǔ)起來是一個(gè)主觀問題,需要在后臺(tái)進(jìn)行響應(yīng)的時(shí)候來告訴瀏覽器慎菲,有些數(shù)據(jù)其他請(qǐng)求還會(huì)使用嫁蛇,需要存儲(chǔ)起來。
特點(diǎn):
瀏覽器端的數(shù)據(jù)存儲(chǔ)技術(shù)
適合少量數(shù)據(jù)
鍵值對(duì)
不安全
使用:
Cookie 數(shù)據(jù)存儲(chǔ):
臨時(shí)存儲(chǔ):
不設(shè)置 cookie 信息的存儲(chǔ)時(shí)間露该,周期為一次會(huì)話睬棚,
存儲(chǔ)在瀏覽器內(nèi)存中
定時(shí)存儲(chǔ):
設(shè)置存儲(chǔ)時(shí)間,周期為時(shí)間設(shè)置解幼,存儲(chǔ)在用戶電腦
中抑党。
Cookie 數(shù)據(jù)獲取:
總結(jié):
Cookie 技術(shù)解決了不同請(qǐng)求發(fā)送之間的數(shù)據(jù)共享問題撵摆。