前言:本篇學習筆記 來自B站動力節點官方號的 reyco老師的Servlet的視頻中的筆記和結論
一、 Cookie簡介
Cookie 是由 網景公司前雇員在 1993年發明的一種進行網路會話狀態跟蹤的技術,
會話是由一組請求回應組成,是圍繞一件相關的事情所進行的請求與相應,所以這些請求與回應之間是一定有資料傳遞的,即需要進行會話跟蹤的,然而 HTTP 協議是一種無狀態協議,在不同的請求間 是無法進行資料傳遞的,此時需要一種可以進行請求間資料傳遞的會話跟蹤技術,
Cookie 是由服務器生成,保存在客戶機的一種資訊載體,這個載體中存放在用戶訪問該站點的會話狀態資訊,只要 cookie 沒有被清除,或者 cookie 沒有失效,那么存放在其中的會話狀態就有效,
用戶在提交第一次請求后,由服務器生成 cookie ,并將其裝到 回應頭中 response,以回應的形式發送給客戶端,客戶端在收到回應后,將 cookie 保存到客戶端,當客戶端再次發送同類請求后,在請求中會攜帶保存在客戶端 的 cookie 資料,再次發送到服務端,服務端接受到相同同的狀態資訊(cookie)并識別,服務端即可對對話進行跟蹤,
Cookie 技術并不是 javaweb 開發的專屬技術,而屬于 web開發的專屬技術,是所有 web 開發語言均支持的技術
Cookie 是由若干鍵值對構成,這里的鍵——一般稱為 name ,值稱為 value,Cookie 的 鍵和值 均為 字串
二、火狐瀏覽器下查看 Cookie
不同的瀏覽器,其 Cookie 的保存位置及查看方式不一樣,洗掉某一瀏覽器下的 cookie ,不會影響到其他瀏覽器的 cookie
火狐瀏覽器(版本35.0.1)可以直接看到 cookie的內容,查看位置在:(選項—>隱私—>移除單個 Cookie)


三、JAVAEE中 Cookie
在 Javaee 中的 javax.servlet.http 包中存在一個類 Cookie,就是用于完成會話跟蹤的 Cookie,其中只有一個帶參構造器:
public Cookie(String name,String value)
而 httpServletResponse 中有一個方法,可以將 Cookie 添加到 相應頭中:
public void addCookie(Cookie cookie)
注意,一個response 中可以添加多個 Cookie 鍵值對,
1)創建 Cookie
Cookie cookie1 = new Cookie("username","chens"); Cookie cookie2 = new Cookie("username","chens");
2)默認系結路徑
訪問路徑由資源名稱與資源路徑構成,默認情況下,Cookie 與訪問路徑中的資源路徑系結,只要用戶發出帶有系結資源路徑(等同于同類請求)的請求,則在請求頭部,將自動攜帶 與之系結的 Cookie 資料
3)自定義路徑
通過Cookie 類中的方法 public void setPath(String path) ,設定指定路徑
//注意:這里指定的路徑必須加上專案名稱 cookie1.setPath(request.getContextPath() + "/xxx/ooo/some"); cookie2.setPath(request.getContextPath() + "/aaa");
4)設定Cookie的保存時長,單位為秒
//注意:時長=0或<0時或未指定時,規定在會話結束是失效 Cookie1.setMaxAge(60*60)//一小時
5)將 Cookie 添加到回應頭
Response.addCookie(cookie1);
Response.addCookie(cookie2);
運行結果:
訪問你的servlet,并且用火狐查看cookie

值得注意的是,passward(cookie2)沒有指定 cookie 保存時間默認在會話結束失效,
6)接收 Cookie
當訪問到 Cookie 指定路徑時,Cookie將會被包裝request中,我們可以通過 request 中的 getCookie 獲取到
在相同專案中另一個servlet獲取到傳輸過來的cookie
//獲取 cookie Cookie[] cookies = request.getCookies(); //遍歷 cookie for(Cookie cookie:cookies) { System.out.println(cookie.getName() + cookie.getValue()); }
好了,本篇的學習結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156463.html
標籤:Java
下一篇:插入排序之直接插入排序
