Cookie簡介及JSP處理Cookie的方法

2021-04-18 00:21:54 字數 2906 閱讀 3150

說了這麼多,大家一定很想知道jsp是如何建立cookie了。jsp是使用如下的語法格式來建立cookie的:

cookie cookie_name =new cookie("parameter","value");

例如:cookie newcookie =new cookie("username","waynezheng"); response.addcookie(newcookie);

解釋:jsp是呼叫cookie物件相應的建構函式cookie(name,value)用合適的名字和值來建立cookie,然後 cookie可以通過httpservletresponse的addcookie方法加入到set-cookie應答頭,本例中cookie物件有兩個字串引數:username,waynezheng。注意,名字和值都不能包含空白字元以及下列字元: @ : ;? , " / [ ] ( ) =

處理cookie的屬性型別

方法名方法解釋

string

getcomment()

返回cookie中注釋,如果沒有注釋的話將返回空值.

string 

getdomain()

返回cookie中cookie適用的網域名稱. 使用getdomain() 方法可以指示瀏覽器把cookie返回給同 一域內的其他伺服器,而通常cookie只返回給與傳送它的伺服器名字完全相同的伺服器。注意網域名稱必須以點開始(例如.yesky.com) 

int 

getmaxage()

返回cookie過期之前的最大時間,以秒計算。 

string

getname() 

返回cookie的名字。名字和值是我們始終關心的兩個部分,筆者會在後面詳細介紹 getname/setname。 

string

getpath()

返回cookie適用的路徑。如果不指定路徑,cookie將返回給當前頁面所在目錄及其子目錄下 的所有頁面。

boolean

getsecure()

如果瀏覽器通過安全協議傳送cookies將返回true值,如果瀏覽器使用標準協議則返回false值。

string 

getvalue()

返回cookie的值。筆者也將在後面詳細介紹getvalue/setvalue。 

intgetversion() 

返回cookie所遵從的協議版本。 

void

setcomment(string purpose)

設定cookie中注釋。

void

setdomain(string pattern)

設定cookie中cookie適用的網域名稱

void

setmaxage(int expiry) 

以秒計算,設定cookie過期時間。

void

setpath(string uri)

指定cookie適用的路徑。 

void 

setsecure(boolean flag)

指出瀏覽器使用的安全協議,例如https或ssl。 

void

setvalue(string newvalue)

cookie建立後設定乙個新的值。 

void

setversion(int v)

設定cookie所遵從的協議版本。    

讀取客戶端的cookie

在cookie傳送到客戶端前,先要建立乙個cookie,然後用addcookie方法傳送乙個http header。 jsp將呼叫request.getcookies()從客戶端讀入cookie,getcookies()方法返回乙個http請求頭中的內容對應的cookie物件陣列。 你只需要用迴圈訪問該陣列的各個元素,呼叫getname方法檢查各個cookie的名字,直至找到目標cookie,然後對該cookie呼叫getvalue方法取得與指定名字關聯的值 。

例如

<%

string username=request.getparameter("username");//從提交的html表單中獲取,使用者名稱

cookie theusername=new cookie("username",username);//以"username",username值/對建立乙個cookie

response.addcookie(theusername);

%>

..............

<%

cookie mycookie=request.getcookies();//建立乙個cookie物件陣列

for(int n=0;n=cookie.length-1;i++);//設立乙個迴圈,來訪問cookie物件陣列的每乙個元素

cookie newcookie= mycookie[n];

if(newcookie.getname().equals("username")); //判斷元素的值是否為username中的值

%>

設定cookie的存在時間,及刪除cookie 在jsp中,使用setmaxage(int expiry)方法來設定cookie的存在時間,引數expiry應是乙個整數。正值表示cookie將在這麼多秒以後失效。 注意這個值是cookie將要存在的最大時間,而不是cookie現在的存在時間。 負值表示當瀏覽器關閉時,cookie將會被刪除。零值則是要刪除該cookie。 如:   

<%

cookie deletenewcookie=new cookie("newcookie",null);

deletenewcookie.setmaxage(0);

deletenewcookie.setpath("/");

response.addcookie(deletenewcookie);

%>   

jsp無法取到cookie問題及解決

今天筆者在寫個小專案時用到記住密碼,這個的實現原理也簡單一般都是使用cookie,筆者也這樣寫的,先看我的servlet層的 customer customer getreqparamobj request,customer.class string rempwd request.getparame...

C 異常處理簡介

異常 程式執行期間,可檢測到的不正常情況。例如 0 作除數 陣列下標越界 開啟不存在的檔案 遠端機器連線超時 malloc 失敗等等。程式的兩種狀態 正常狀態和異常狀態,發生不正常情況後,進入異常狀態,從當前函式開始,按呼叫鏈的相反次序,查詢處理該異 常的程式片斷。1.throw 表示式語義 用表示...

C 簡介及環境設定

c 簡介 c 是一種靜態型別的 編譯式的 通用的 大小寫敏感的 不規則的程式語言,支援過程化程式設計 物件導向程式設計和泛型程式設計。c 被認為是一種中級語言,它綜合了高階語言和低階語言的特點。c 是由 bjarne stroustrup 於 1979 年在紐澤西州美利山貝爾實驗室開始設計開發的。c...