**
Cookie
**
Cookie 是基於 set-Cookie響應頭和 Cookie請求頭工作的,
伺服器可以傳送set-Cookie請求頭命令瀏覽器儲存一個cookie資訊,瀏覽器會在訪問伺服器時以Cookie請求頭的方式帶回之前儲存的資訊
獲取cookie集合:
- request.getCookies();新增一個cookie:
- response.addCookie(Cookie c);
新建一個cookie:
new Cookie(String name,String value) — Cookie在構造的時候就需要設定好cookie的名字和值- 獲取cookie的名字:
- getName();
- 獲取cookie的值:
- getValue();
- 設定cookie的值:
- setValue();
cookie有效期的設定和獲取
- setMaxAge()與getMaxAge()方法
– 一個Cookie如果沒有設定過MaxAge則這個Cookie是一個會話級別的Cookie,這個Cookie資訊打給瀏覽器後瀏覽器會將它儲存在瀏覽器的記憶體中,這意味著只要瀏覽器已關閉隨著瀏覽器記憶體的銷燬,Cookie資訊也就消失了.
一個Cookie也可以設定MaxAge,瀏覽器一旦發現收到的Cookie被設定了MaxAge,則會將這個Cookie資訊以檔案的形式儲存在瀏覽器的臨時資料夾中,儲存到指定的時間到來位置.這樣一來即使多次開關瀏覽器,由於這些瀏覽器都能在臨時資料夾中看到cookie檔案,所以在cookie失效之前cookie資訊都存在. - 刪除一個Cookie
想要命令瀏覽器刪除一個Cookie,- 傳送一個同名同path的cookie,
- maxAge設定為0,
瀏覽器以名字+path識別cookie,發現同名同path,cookie覆蓋後立即超時被刪除,從而就刪除了cookie.
- setMaxAge()與getMaxAge()方法
setPath()與getPath()方法
- 用來通知瀏覽器在訪問伺服器中的哪個路徑及其子路徑時帶著當前cookie資訊過來
如果不明確設定,則預設的路徑是傳送Cookie的Servlet所在的路徑
http://localhost/Day05/servlet/…
- 用來通知瀏覽器在訪問伺服器中的哪個路徑及其子路徑時帶著當前cookie資訊過來
- setDomain()與getDomain()方法
– 用來通知瀏覽器在訪問哪個域名的時候帶著當前的cookie資訊.但是要注意,現代的瀏覽器一旦發現cookie設定過domain資訊則會拒絕接收這個Cookie.我們平常不要設定這個方法