資源描述:
《cookie簡(jiǎn)介及jsp處理cookie的方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Cookie簡(jiǎn)介及JSP處理Cookie的方法2008/05/0909:42??Cookie簡(jiǎn)介及JSP處理Cookie的方法一.什么是cookies? 大家都知道,瀏覽器與WEB服務(wù)器之間是使用HTTP協(xié)議進(jìn)行通信的,當(dāng)某個(gè)用戶(hù)發(fā)出頁(yè)面請(qǐng)求時(shí),WEB服務(wù)器只是簡(jiǎn)單的進(jìn)行響應(yīng),然后就關(guān)閉與該用戶(hù)的連接。因此當(dāng)一個(gè)請(qǐng)求發(fā)送到WEB服務(wù)器時(shí),無(wú)論其是否是第一次來(lái)訪,服務(wù)器都會(huì)把它當(dāng)作第一次來(lái)對(duì)待,這樣的不好之處可想而知。為了彌補(bǔ)這個(gè)缺陷,Netscape開(kāi)發(fā)出了cookie這個(gè)有效的工具來(lái)保存某個(gè)用戶(hù)的識(shí)別信息,因此人們昵稱(chēng)為"小甜餅"。cookies是一種WEB服務(wù)
2、器通過(guò)瀏覽器在訪問(wèn)者的硬盤(pán)上存儲(chǔ)信息的手段:NetscapeNavigator使用一個(gè)名為cookies.txt本地文件保存從所有站點(diǎn)接收的Cookie信息;而IE瀏覽器把Cookie信息保存在類(lèi)似于C:windowscookies的目錄下。當(dāng)用戶(hù)再次訪問(wèn)某個(gè)站點(diǎn)時(shí),服務(wù)端將要求瀏覽器查找并返回先前發(fā)送的Cookie信息,來(lái)識(shí)別這個(gè)用戶(hù)?! ookies給網(wǎng)站和用戶(hù)帶來(lái)的好處非常多:1、Cookie能使站點(diǎn)跟蹤特定訪問(wèn)者的訪問(wèn)次數(shù)、最后訪問(wèn)時(shí)間和訪問(wèn)者進(jìn)入站點(diǎn)的路徑2、Cookie能告訴在線廣告商廣告被點(diǎn)擊的次數(shù),從而可以更精確的投放廣告3、Cookie有效期
3、限未到時(shí),Cookie能使用戶(hù)在不鍵入密碼和用戶(hù)名的情況下進(jìn)入曾經(jīng)瀏覽過(guò)的一些站點(diǎn)4、Cookie能幫助站點(diǎn)統(tǒng)計(jì)用戶(hù)個(gè)人資料以實(shí)現(xiàn)各種各樣的個(gè)性化服務(wù) 在JSP中,我們也可以使用Cookie,來(lái)編寫(xiě)一些功能強(qiáng)大的應(yīng)用程序。 下面,我想介紹一下如何用JSP創(chuàng)建和處理Cookie?! 《绾蝿?chuàng)建Cookie 說(shuō)了這么多,大家一定很想知道JSP是如何創(chuàng)建cookie了。JSP是使用如下的語(yǔ)法格式來(lái)創(chuàng)建cookie的: Cookiecookie_name=newCookie("Parameter","Value"); 例如:CookienewCookie
4、=newCookie("username","waynezheng");response.addCookie(newCookie); 解釋?zhuān)篔SP是調(diào)用Cookie對(duì)象相應(yīng)的構(gòu)造函數(shù)Cookie(name,value)用合適的名字和值來(lái)創(chuàng)建Cookie,然后Cookie可以通過(guò)HttpServletResponse的addCookie方法加入到Set-Cookie應(yīng)答頭,本例中Cookie對(duì)象有兩個(gè)字符串參數(shù):username,waynezheng。注意,名字和值都不能包含空白字符以及下列字符:@:;?,"/[]()= 處理Cookie的屬性 看到這里,有的朋
5、友又要問(wèn)了:我光知道如何創(chuàng)建Cookie有什么用呀?是呀,光知道如何創(chuàng)建Cookie而不知道怎么使用是不夠的。在JSP中,程序是通過(guò)cookie.setXXX設(shè)置各種屬性,用cookie.getXXX讀出cookie的屬性,現(xiàn)把Cookie的主要屬性,及其方法列于下,供大家參考:讀取客戶(hù)端的Cookie 在Cookie發(fā)送到客戶(hù)端前,先要?jiǎng)?chuàng)建一個(gè)Cookie,然后用addCookie方法發(fā)送一個(gè)HTTPHeader。JSP將調(diào)用request.getCookies()從客戶(hù)端讀入Cookie,getCookies()方法返回一個(gè)HTTP請(qǐng)求頭中的內(nèi)容對(duì)應(yīng)的Cook
6、ie對(duì)象數(shù)組。你只需要用循環(huán)訪問(wèn)該數(shù)組的各個(gè)元素,調(diào)用getName方法檢查各個(gè)Cookie的名字,直至找到目標(biāo)Cookie,然后對(duì)該Cookie調(diào)用getValue方法取得與指定名字關(guān)聯(lián)的值。例如<% StringuserName=request.getParameter("username");//從提交的HTML表單中獲取,用戶(hù)名 CookietheUsername=newCookie("username",userName);//以"username",userName值/對(duì)創(chuàng)建一個(gè)Cookie response.addCookie(theUsername)
7、;%>..............<% CookiemyCookie[]=request.getCookies();//創(chuàng)建一個(gè)Cookie對(duì)象數(shù)組 for(intn=0;n=cookie.length-1;i++);//設(shè)立一個(gè)循環(huán),來(lái)訪問(wèn)Cookie對(duì)象數(shù)組的每一個(gè)元素 CookienewCookie=myCookie[n]; if(newCookie.getName().equals("username"));//判斷元素的值是否為username中的值 {%> 你好,<%=newCookie.getValue()%>!//如果找到后,向他問(wèn)好 <