Cookie是客戶端技術,程序把每個用戶的數據以cookie的形式寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶着各自的數據去。這樣,web資源處理的就是用戶各自的數據了。
/*上次訪問時間*/
//得到上次訪問的cookie對象
Cookie cookies[] = request.getCookies();
//遍歷得到的cookie數組
for(int i=0;cookies!=null&&i<cookies.length;i++){
Cookie cookie = cookies[i];
//判斷返回的cookie是否是上次訪問的
if("lastTime".equals(cookie.getName())){
String lastTime = cookie.getValue();
Date date = new Date(Long.parseLong(lastTime));
out.print(date.toLocaleString());
}
}
/*保存這次訪問的時間*/
//創建cookie對象
Cookie ck = new Cookie("lastTime",System.currentTimeMillis()+"");
/*關閉瀏覽器後,cookie對象在緩存中的存在時間
* 只針對/Test20111024/servlet/demo01路徑對應的cookie對象來說
* setMaxAge()中的參數是以秒計算的*/
ck.setMaxAge(3600);
ck.setPath("/Test20111024/servlet/demo01");
//將該cookie對象添加到回送信息中
response.addCookie(ck);
一個Cookie只能標識一種信息,它至少含有一個標識該信息的名稱(NAME)和設置值(VALUE)。
一個WEB站點可以給一個WEB瀏覽器發送多個Cookie,一個WEB瀏覽器也可以存儲多個WEB站點提供的Cookie。
一個瀏覽器一般只允許存放300個Cookie,每個站點最多存放20個Cookie,每個Cookie的大小限制爲4KB。
如果創建了一個cookie,並將他發送到瀏覽器,默認情況下它是一個會話級別的cookie(即存儲在瀏覽器的內存中),用戶退出瀏覽器之後即被刪除。若希望瀏覽器將該cookie存儲在磁盤上,則需要使用maxAge,並給出一個以秒爲單位的時間。將最大時效設爲0則是命令瀏覽器刪除該cookie。
注意,刪除cookie時,path必須一致,否則不會刪除