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 ...