創建一個 cookie,cookie 是 servlet 發送到 Web 瀏覽器的少量信息,這些信息由瀏覽器保存,然後發送回服務器。
cookie 的值可以唯一地標識客戶端,因此 cookie 常用於會話管理。
一個 cookie 擁有一個名稱、一個值和一些可選屬性,比如註釋、路徑和域限定符、最大生存時間和版本號。
一些 Web 瀏覽器在處理可選屬性方面存在 bug,因此有節制地使用這些屬性可提高 servlet 的互操作性。
servlet 通過使用 HttpServletResponse#addCookie 方法將 cookie 發送到瀏覽器,該方法將字段添加到 HTTP 響應頭,
以便一次一個地將 cookie 發送到瀏覽器。瀏覽器應該支持每臺 Web 服務器有 20 個 cookie,總共有 300 個 cookie,
並且可能將每個 cookie 的大小限定爲 4 KB。
瀏覽器通過向 HTTP 請求頭添加字段將 cookie 返回給 servlet。可使用 HttpServletRequest#getCookies 方法從請求中獲取 cookie。
一些 cookie 可能有相同的名稱,但卻有不同的路徑屬性。
cookie 影響使用它們的 Web 頁面的緩存。HTTP 1.0 不會緩存那些使用通過此類創建的 cookie 的頁面。
//獲得用戶的時間cookie
Cookie cookies[]=request.getCookies();
for(int i=0;cookies!=null&&i<cookies.length;i++){
if(cookies[i].getName().equals("lastAccessTime")){
long cookieValue=Long.parseLong(cookies[i].getValue());
Date date=new Date(cookieValue);
out.print(date.toLocaleString());
}
}
//給用戶回送最新的訪問時間
Cookie cookie=new Cookie("lastAccessTime",System.currentTimeMillis()+"");
cookie.setMaxAge(1*30*24*3600);
cookie.setPath("/day07");
response.addCookie(cookie);