1. 程式人生 > >Cookie的介紹及其細節

Cookie的介紹及其細節

Cookie

Javax.servlet.http.Cookie類用於建立一個Cookieresponse介面中也定義了一個addCookie方法,它用於在其響應頭中增加一個響應的Set-Cookie頭欄位。同樣,response介面中也定義了一個getCookies方法,它用於獲取客戶端提交的Cookie

Cookie類的常用方法:

Public Cookie(String name,String value)

setValuegetValue方法

setMaxAgegetMaxAge方法  

設定cookie儲存時間,單位為秒如不設定將在關閉瀏覽器後失效。

setPathgetPath方法

  設定

cookie有效目錄。比如 /day06  則訪問day06下的所有資源都會帶著cookie

      如果不設定,那麼cookie是由那個servlet傳送的目錄決定的。比如/day06/servlet/servletDemo,則等同於設定目錄為day06/servlet/

setDomaingetDomain方法(這個用來設定域,但是在實際開發中基本上設定了也沒用)

getNamegetvalue方法  用來獲取cookie的名稱/名稱對應的值

Cookie的細節

一個Cookie只能標識一種資訊,它至少含有一個標識該資訊名稱和名稱對應的值。

一個web站點可以給一個web瀏覽器傳送多個Cookie。一個WEB瀏覽器也可以儲存

多個web站點提供的cookie。(即彼此之間互相無一對一關係)。

瀏覽器一般只允許存放300cookie,每個站點最多存放20個,每個大小限制為4kb

如果建立了一個cookie,並將它傳送到瀏覽器,預設情況下它是一個會話級別的cookie。(即儲存在瀏覽器的核心中)。若希望瀏覽器將該cookie儲存在磁碟上,則需要使用maxAge。其單位為秒,若是設定成0則是命令瀏覽器立即刪除該cookie

注意:刪除cookie時,path必須一致。否則不會刪除。還有用js相關程式碼也能夠操作,刪除cookie

在用其他Servlet刪除Cookie的時候設定完cookie的有效期後需要把cookieresponse

帶回去,不然沒效果.比如

Cookie c=new Cookie("dateInString",null);c.setMaxAge(0);

//在這裡把設定完之後的cookie帶回去。response.addCookie(c);response.sendRedirect("/test/lastLoginServlet");