Cookie的生命週期問題

2021-09-12 00:13:01 字數 1961 閱讀 5312

cookie會在客戶端存活多久呢?這就是cookie的生命了。預設情況下,cookie只在瀏覽器的記憶體中存活,也就是說,當你關閉瀏覽器後,cookie就會消失!

可以使用cookie#setmaxage(int expiry)來設定cookie的存活時間。引數expiry表示cookie存活的秒數。

cookie.setmaxage(60*60):表示cookie物件可存活1小時。就算關閉瀏覽器,就算重啟客戶端電腦,cookie也會存活1小時。因為當maxage大於0時,瀏覽器不僅會把cookie儲存在瀏覽器記憶體中,還會把cookie儲存到硬碟上。

cookie.setmaxage(-1):cookie的maxage屬性的預設值就是-1(其實只要是負數都是乙個意思),表示只在瀏覽器記憶體中存活。一旦關閉瀏覽器視窗,那麼cookie就會消失。

cookie.setmaxage(0):cookie被作廢!表示cookie即不在記憶體中存活,也不在硬碟上存活,這樣的cookie設定只有乙個目的,那就是覆蓋客戶端原來的這個cookie,使其作廢。

**示例:

//獲取使用者名稱和密碼

string username = request.getparameter("username");

string password = request.getparameter("password");

system.out.println("使用者名稱:"+username);

system.out.println("密碼:"+password);

//建立cookie物件,將使用者名稱和密碼連線儲存,使用逗號分開

cookie cookie = new cookie("userpass", username+","+password);

//設定cookie的存活時間,裡面的引數是以秒為單位

//如果maxage設定成-1代表是當前cookie的銷毀時間是瀏覽器關閉,和預設是一樣的

//如果maxage設定成0代表刪除已經存在的和當前同名的cookie

cookie.setmaxage(0);

//把cookie寫入瀏覽器

response.addcookie(cookie);

//跳轉頁面

request.getrequestdispatcher("/regist1.html").forward(request, response);

設定cookie物件的有效時間, setmaxage()方法便可以設定cookie物件的有效時間,

例如:cookie c = new cookie(「username」,」john」);

c.setmaxage(60);//60秒的意思

c.setmaxage(60*60);//一小時

c.setmaxage(365*24*60*60);//一年

如果不設定過期時間,則表示這個cookie生命週期為瀏覽器會話期間,只要關閉瀏覽器視窗,cookie就消失了。

這種生命期為瀏覽會話期的cookie被稱為會話cookie。會話cookie一般不儲存在硬碟上而是儲存在記憶體裡。

如果設定了過期時間,瀏覽器就會把cookie儲存到硬碟上,關閉後再次開啟瀏覽器,這些cookie依然有效直到超過設定的過期時間。儲存在硬碟上的cookie可以在不同的瀏覽器程序間共享,比如兩個ie視窗。而對於儲存在記憶體的cookie,不同的瀏覽器有不同的處理方式。

cookie.setmaxage設定為0時,會馬上在瀏覽器上刪除指定的cookie

cookie.setmaxage設定為-1時,代表關閉當前瀏覽器即失效。

Cookie的生命週期問題

設定cookie物件的有效時間,setmaxage 方法便可以設定cookie物件的有效時間,例如 cookie c new cookie username john c.setmaxage 60 60秒的意思 c.setmaxage 60 60 一小時 c.setmaxage 365 24 60 ...

Cookie的生命週期問題

設定cookie物件的有效時間,setmaxage 方法便可以設定cookie物件的有效時間,例如 cookie c new cookie username salry c.setmaxage 60 60秒的意思 c.setmaxage 60 60 一小時 c.setmaxage 365 24 60...

Cookie的生命週期問題

設定cookie物件的有效時間,setmaxage 方法便可以設定cookie物件的有效時間,例如 cookie c new cookie username john c.setmaxage 60 60秒的意思 c.setmaxage 60 60 一小時 c.setmaxage 365 24 60 ...