資源描述:
《使用cookie記錄信息》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第6章使用cookie記錄信息16.1.1什么是cookie什么是Cookies(“小甜餅”)Cookies就是服務(wù)器暫存放在你的電腦里的資料(.txt格式的文本文件),好讓服務(wù)器用來(lái)辨認(rèn)你的計(jì)算機(jī)。當(dāng)瀏覽網(wǎng)站的時(shí)候,Web服務(wù)器會(huì)先送一小小資料放在客戶的計(jì)算機(jī)上,Cookies會(huì)把客戶在網(wǎng)站上所打的文字或是一些選擇都記錄下來(lái)。當(dāng)下次客戶再訪問(wèn)同一個(gè)網(wǎng)站,Web服務(wù)器會(huì)先看看有沒(méi)有它上次留下的Cookies資料,有的話,就會(huì)依據(jù)Cookie里的內(nèi)容來(lái)判斷使用者,送出特定的網(wǎng)頁(yè)內(nèi)容給客戶。Cookie是一段純文本信息,由服務(wù)器隨文本一起發(fā)送到客戶端,并保
2、存在客戶端硬盤(pán)的指定目錄。服務(wù)器讀取時(shí),只讀取到這個(gè)服務(wù)器相關(guān)的信息。2對(duì)用戶訪問(wèn)在用戶請(qǐng)求訪問(wèn)某個(gè)網(wǎng)站上的某個(gè)頁(yè)面時(shí),應(yīng)用程序發(fā)送給該用戶的不僅僅是一個(gè)頁(yè)面,還有一個(gè)包含日期和時(shí)間的Cookie。用戶的瀏覽器在獲得頁(yè)面的同時(shí)還得到了這個(gè)Cookie,并且將它保存在用戶硬盤(pán)上的某個(gè)文件夾中。以后,如果該用戶再次訪問(wèn)您站點(diǎn)上的頁(yè)面時(shí),瀏覽器就會(huì)在本地硬盤(pán)上查找與該URL相關(guān)聯(lián)的Cookie。如果該Cookie存在,瀏覽器就將它與頁(yè)面請(qǐng)求一起發(fā)送到您的站點(diǎn),您的應(yīng)用程序就能確定該用戶上一次訪問(wèn)站點(diǎn)的日期和時(shí)間。36.1.2Cookie的常見(jiàn)用途Cookie
3、最根本的用途:Cookie能夠幫助Web站點(diǎn)保存有關(guān)訪問(wèn)者的信息。Cookie的常見(jiàn)用途:網(wǎng)站瀏覽人數(shù)管理按照用戶的喜好定制網(wǎng)頁(yè)外觀在電子商務(wù)站點(diǎn)中實(shí)現(xiàn)諸如“購(gòu)物籃”等功能456.2在JSP中使用CookieCookie實(shí)質(zhì)是服務(wù)器端與客戶端之間傳送的普通HTTP頭,可以保存也可不保存在客戶的硬盤(pán)上。如果保存,每個(gè)文件大小不超過(guò)4KB的文本文件,多個(gè)Cookie可保存到同一個(gè)文件中。如果從編程角度來(lái)看,在JSP中Cookie就是Java提供的一個(gè)類(lèi)。66.3.3設(shè)置Cookie屬性類(lèi)型方法名方法解釋StringgetComment()返回cookie中
4、注釋,如果沒(méi)有注釋的話將返回空值.StringgetDomain()返回cookie中Cookie適用的域名.使用getDomain()方法可以指示瀏覽器把Cookie返回給同一域內(nèi)的其他服務(wù)器,而通常Cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。注意域名必須以點(diǎn)開(kāi)始(例如.yesky.com)intgetMaxAge()返回Cookie過(guò)期之前的最大時(shí)間,以秒計(jì)算。StringgetName()返回Cookie的名字。名字和值是我們始終關(guān)心的兩個(gè)部分StringgetPath()返回Cookie適用的路徑。如果不指定路徑,Cookie將返
5、回給當(dāng)前頁(yè)面所在目錄及其子目錄下的所有頁(yè)面。booleangetSecure()如果瀏覽器通過(guò)安全協(xié)議發(fā)送cookies將返回true值,如果瀏覽器使用標(biāo)準(zhǔn)協(xié)議則返回false值。StringgetValue()返回Cookie的值。7表6-1Cookie中的方法及其說(shuō)明intgetVersion()返回Cookie所遵從的協(xié)議版本。voidsetComment(Stringpurpose)設(shè)置cookie中注釋。voidsetDomain(Stringpattern)設(shè)置cookie中Cookie適用的域名voidsetMaxAge(intexpir
6、y)以秒計(jì)算,設(shè)置Cookie過(guò)期時(shí)間。voidsetPath(Stringuri)指定Cookie適用的路徑。voidsetSecure(booleanflag)指出瀏覽器使用的安全協(xié)議,例如HTTPS或SSL。voidsetValue(StringnewValue)cookie創(chuàng)建后設(shè)置一個(gè)新的值。voidsetVersion(intv)設(shè)置Cookie所遵從的協(xié)議版本。86.2.1創(chuàng)建CookieCookie是由Javax.servlet.http.Cookie類(lèi)所衍生出來(lái)的對(duì)象建立Cookie的語(yǔ)法如下:CookieobjCookie=newC
7、ookie(indexValue,stringValue)一個(gè)Cookie對(duì)象必須包含有一個(gè)特定的indexValue索引值與字符串類(lèi)型的數(shù)據(jù)內(nèi)容stringValueCookie數(shù)據(jù)還必須傳送到客戶端,用addCookie方法發(fā)送一個(gè)HTTPHeader。傳送的方式為:response.addCookie(objCookie)96.2.2讀寫(xiě)Cookie寫(xiě)Cookie:利用response對(duì)象,通過(guò)addCookie方法將Cookie寫(xiě)入客戶端。語(yǔ)法如下:response.addCookie(cookie);讀Cookie:將Cookie保存到客戶端
8、,就是為了以后得到其中保存的數(shù)據(jù)。調(diào)用HttpServletRequest的getCookie