第6章使用Cookie記錄信息_第1頁
第6章使用Cookie記錄信息_第2頁
第6章使用Cookie記錄信息_第3頁
第6章使用Cookie記錄信息_第4頁
第6章使用Cookie記錄信息_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第第6 6章章 使用使用CookieCookie記錄信息記錄信息本章學(xué)習(xí)目標(biāo):了解Cookie的基本概念掌握在JSP中創(chuàng)建Cookie的方法掌握在JSP中讀寫Cookie的方法掌握設(shè)置Cookie存在期限的方法了解Cookie的安全問題6.1 Cookie的概念和特性的概念和特性6.2 在在JSP中使用中使用Cookie6.3 Cookie對(duì)象的應(yīng)用實(shí)例對(duì)象的應(yīng)用實(shí)例6.4 Cookie的安全問題的安全問題6.1 Cookie6.1 Cookie的概念和特性的概念和特性Cookie是設(shè)計(jì)交互式網(wǎng)頁的一項(xiàng)重要技術(shù),它可以將一些簡短的數(shù)據(jù)存儲(chǔ)在用戶的計(jì)算機(jī)上,這些存放在用戶計(jì)算機(jī)上的變量數(shù)據(jù),稱為

2、Cookie。當(dāng)瀏覽器向服務(wù)器提出網(wǎng)頁瀏覽請(qǐng)求時(shí),服務(wù)器根據(jù)存儲(chǔ)在用戶計(jì)算機(jī)上面的Cookie內(nèi)容,針對(duì)此瀏覽器顯示其專門的內(nèi)容。6.1.1 6.1.1 什么是什么是CookieCookieCookie是服務(wù)器發(fā)送給瀏覽器的體積非常小的純文本信息,用戶以后訪問同一個(gè)Web服務(wù)器時(shí)瀏覽器會(huì)把他們?cè)瓨影l(fā)送給服務(wù)器。通過讓服務(wù)器讀取他原先保存到客戶端的信息,網(wǎng)站能夠?yàn)闉g覽者提供一系列的方便,例如在線交易過程中標(biāo)識(shí)用戶身份、安全需求不高的場合避免用戶重復(fù)輸入名字和密碼、門戶網(wǎng)站的主頁制定、有針對(duì)性地投放廣告,等等。Cookie數(shù)據(jù)存儲(chǔ)的功能由瀏覽器本身所提供,因此Cookie功能都必須要有瀏覽器的支持

3、才行,一般通用的瀏覽器,例如IE都支持此功能。當(dāng)用戶打開的網(wǎng)頁中包含Cookie程序代碼,此時(shí)服務(wù)器端會(huì)建立Cookie數(shù)據(jù),然后將這個(gè)Cookie傳送到客戶端用戶的計(jì)算機(jī)上。Cookie示意圖6.1.2 Cookie的常見用途Cookie的常見用途如:(1)網(wǎng)站瀏覽人數(shù)管理 (2)按照用戶的喜好定制網(wǎng)頁外觀(3)在電子商務(wù)站點(diǎn)中實(shí)現(xiàn)諸如“購物籃”等功能 Cookies給網(wǎng)站和用戶帶來的好處非常多: Cookie能使站點(diǎn)跟蹤特定訪問者的訪問次數(shù)、最后訪問時(shí)間和訪問者進(jìn)入站點(diǎn)的路徑。Cookie能告訴在線廣告商廣告被點(diǎn)擊的次數(shù) ,從而可以更精確的投放廣告。Cookie有效期限未到時(shí),Cookie

4、能使用戶在不鍵入密碼和用戶名的情況下進(jìn)入曾經(jīng)瀏覽過的一些站點(diǎn)。Cookie能幫助站點(diǎn)統(tǒng)計(jì)用戶個(gè)人資料以實(shí)現(xiàn)各種各樣的個(gè)性化服務(wù)。6.1.3 對(duì)Cookie進(jìn)行適當(dāng)設(shè)置6.2 6.2 在在JSPJSP中使用中使用CookieCookie6.2.1創(chuàng)建創(chuàng)建CookieCookie是由Javax.servlet.http.Cookie類所衍生出來的對(duì)象,建立Cookie的語法如下:Cookie objCookie = new Cookie(indexValue,stringValue) 從上面的語法中可以看出,一個(gè)Cookie對(duì)象必須包含有一個(gè)特定的indexValue索引值與字符串類型的數(shù)據(jù)內(nèi)容s

5、tringValue。例如:Cookie c = new Cookie(mycookie,Cookie Test);建立了Cookie之后,該Cookie數(shù)據(jù)還必須傳送到客戶端,用addCookie方法發(fā)送一個(gè)HTTP Header。傳送的方式為:response.addCookie(objCookie)。6.2.2 6.2.2 讀寫讀寫CookieCookie1.寫寫Cookie對(duì)Cookie進(jìn)行操作首先是將Cookie保存到客戶端。在JSP編程中,利用response對(duì)象,通過addCookie方法將Cookie寫入客戶端。語法如下:response.addCookie(cookie);例

6、如:2.讀讀Cookie將Cookie保存到客戶端,就是為了以后得到其中保存的數(shù)據(jù)。調(diào)用HttpServletRequest的getCookies得到一個(gè)Cookie對(duì)象的數(shù)組語法如下:Cookie 數(shù)組變量名request.getCookies();在客戶端傳來的Cookie數(shù)據(jù)類型都是數(shù)組類型,因此要得到其中某一項(xiàng)指定的Cookie對(duì)象,需要遍歷數(shù)組來找。%Cookie Cookiesrequest.getCookies();/創(chuàng)建一個(gè)Cookie對(duì)象數(shù)組if(Cookies=null out.print(none any Cookie );else for (int i=0;i Cook

7、ies.length;i+)/設(shè)立一個(gè)循環(huán),來訪問Cookie對(duì)象數(shù)組的每一個(gè)元素 if(Cookiesi.getName().equals(cookie_name) /判斷元素的值是否為username中的值 out.println(Cookiesi.getValue()+); %6.2.3 Cookie6.2.3 Cookie中的主要方法中的主要方法類型方法名方法解釋StringgetComment() 返回cookie中注釋,如果沒有注釋的話將返回空值.StringgetDomain()返回cookie中Cookie適用的域名. 使用getDomain() 方法可以指示瀏覽器把Cooki

8、e返回給同 一域內(nèi)的其他服務(wù)器,而通常Cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。注意域名必須以點(diǎn)開始(例如)intgetMaxAge()返回Cookie過期之前的最大時(shí)間,以秒計(jì)算。StringgetName()返回Cookie的名字。名字和值是我們始終關(guān)心的兩個(gè)部分StringgetPath()返回Cookie適用的路徑。如果不指定路徑,Cookie將返回給當(dāng)前頁面所在目錄及其子目錄下 的所有頁面。booleangetSecure()如果瀏覽器通過安全協(xié)議發(fā)送cookies將返回true值,如果瀏覽器使用標(biāo)準(zhǔn)協(xié)議則返回false值。StringgetValue()返回Cook

9、ie的值。intgetVersion()返回Cookie所遵從的協(xié)議版本。voidsetComment(String purpose)設(shè)置cookie中注釋。voidsetDomain(String pattern)設(shè)置cookie中Cookie適用的域名voidsetMaxAge(int expiry)以秒計(jì)算,設(shè)置Cookie過期時(shí)間。voidsetPath(String uri)指定Cookie適用的路徑。voidsetSecure(boolean flag)指出瀏覽器使用的安全協(xié)議,例如HTTPS或SSL。voidsetValue(String newValue)cookie創(chuàng)建后設(shè)置

10、一個(gè)新的值。voidsetVersion(int v)設(shè)置Cookie所遵從的協(xié)議版本。 例如,設(shè)置Cookie變量的有效周期的語法如下:Cookie 變量名稱.setMaxAge(有效周期);有效周期的時(shí)間以秒為單位,時(shí)間設(shè)置越大,表示Cookie對(duì)象的有效時(shí)間越長。Cookie cookie=new Cookie(“username”,”liuyongpo”);Cookie. setMaxAge(30*60);/設(shè)置Cookie的存活時(shí)間為30分鐘response.addCookie(cookie);6.2.4 6.2.4 幾個(gè)操作幾個(gè)操作CookieCookie的常用方法的常用方法1.

11、設(shè)置設(shè)置Cookie的存在期限的存在期限Cookie在生成時(shí)就會(huì)被指定一個(gè)Expire值,這就是Cookie的生存周期,在這個(gè)周期內(nèi)Cookie有效,超出周期Cookie就會(huì)被清除。有些頁面將Cookie的生存周期設(shè)置為0或負(fù)值,這樣在關(guān)閉頁面時(shí),就馬上清除Cookie,不會(huì)記錄用戶信息,更加安全。在默認(rèn)情況下,Cookie是隨著用戶關(guān)閉瀏覽器而自動(dòng)消失的,不過,Cookie也可以設(shè)置其存在的期限,讓用戶下次在打開網(wǎng)頁時(shí),服務(wù)器端仍然能夠取得同樣一個(gè)Cookie中的數(shù)據(jù)內(nèi)容。下面的代碼,使用setMaxAge()方法,設(shè)置Cookie對(duì)象login在一天之內(nèi)都為有效:自動(dòng)保存的Cookiepa

12、ckage ch08;import javax.servlet.http.*;public class LongLivedCookie extends Cookie public static final int SECONDS_PER_YEAR = 60*60*24*365;public LongLivedCookie(String name, String value) super(name, value); setMaxAge(SECONDS_PER_YEAR); 2. 刪除Cookie Cookie killMyCookie = new Cookie(mycookie, null); killMyCookie.setMaxAge(0); killMyCookie.setPath(/); response.addCookie(killMyCookie); 3.獲取指定名字的Cookie值public static String getCookieValue(Cookie cookies, String cookieName, String defaultValue) for(int i=0; icookies.length; i+) Cookie cookie = cookiesi; if (cookieName

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論