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。
int getVersion() 返回Cookie所遵從的協議版本。
void setComment(String purpose) 設定cookie中注釋。
void setDomain(String pattern) 設定cookie中Cookie適用的網域名稱
void setMaxAge(int expiry) 以秒計算,設定Cookie到期時間。如果設定為負值的話,則為瀏覽器進程Cookie(記憶體中儲存),關閉瀏覽器就失效。設為0則銷毀cookies
void setPath(String uri) 指定Cookie適用的路徑。
void setSecure(boolean flag) 指出瀏覽器使用的安全性通訊協定,例如HTTPS或SSL。
void setValue(String newValue) cookie建立後設定一個新的值。
void setVersion(int v) 設定Cookie所遵從的協議版本。
1. 設定Cookie
Cookie cookie = new Cookie("id","id"); cookie.setMaxAge(15*24*60*60); cookie.setPath("/"); response.addCookie(cookie); Cookie cookie2 = new Cookie("pass","pass"); cookie2.setMaxAge(15*24*60*60); cookie2.setPath("/"); response.addCookie(cookie2); Cookie cookie = new Cookie("id","id");cookie.setMaxAge(15*24*60*60);cookie.setPath("/");response.addCookie(cookie); Cookie cookie2 = new Cookie("pass","pass");cookie2.setMaxAge(15*24*60*60);cookie2.setPath("/");response.addCookie(cookie2);
2. 讀取Cookie
Cookie cookies[] = request.getCookies(); String id = ""; String pass = ""; if (cookies != null) { for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals("id")) id = cookies[i].getValue(); else if (cookies[i].getName().equals("pass")) pass = cookies[i].getValue(); } } Cookie cookies[] = request.getCookies();String id = "";String pass = "";if (cookies != null){ for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals("id")) id = cookies[i].getValue(); else if (cookies[i].getName().equals("pass")) pass = cookies[i].getValue(); }}
Cookie cookies[]=request.getCookies() 我們用request.getCookies()讀出使用者硬碟上的Cookie,並將所有的Cookie放到一個cookie對象數組裡面。
接下來我們用一個迴圈語句遍曆剛才建立的Cookie對象數組,我們用cookies[i]取出數組中的一個Cookie對象,然後我們用cookies[i].getValue()和cookies[i].getName()兩個方法來取得這個Cookie的名字和內容。
3. 銷毀cookies
Cookie cookies[] = request.getCookies(); if (cookies != null) { for (int i = 0; i < cookies.length; i++) { cookies[i].setMaxAge(0); cookies[i].setPath("/"); response.addCookie(cookies[i]); } }