一。基本意義web
Cookie指某些網站爲了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(一般通過加密)。Cookie是由服務器端生成,發送給User-Agent(通常是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給服務器(前提是瀏覽器設置爲啓用cookie)。Cookie名稱和值能夠由服務器端開發本身定義,對於JSP而言也能夠直接寫入jsessionid,這樣服務器能夠知道該用戶是否合法用戶以及是否須要從新登陸等,服務器能夠設置或讀取Cookies中包含的信息,藉此維護用戶跟服務器會話中的狀態。數組
Cookies就是服務器暫存放在你的電腦裏的資料(.txt格式的文本文件),好讓服務器用來辨認你的計算機。當你在瀏覽網站的時候,Web服務器會先送一小小資料放在你的計算機上,Cookies 會幫你在網站上所打的文字或是一些選擇都記錄下來。當下次你再訪問同一個網站,Web服務器會先看看有沒有它上次留下的Cookies資料,有的話,就會依據Cookie裏的內容來判斷使用者,送出特定的網頁內容給你。瀏覽器
二。主要用途安全
1. Cookies最典型的應用是斷定註冊用戶是否已經登陸過網站。用戶可能會獲得提示,是否在下一次進入此網站時保留用戶信息以便簡化登陸手續。服務器
2.另外一個重要應用場合是「購物車」之類處理。用戶可能會在一段時間內在同一家網站的不一樣頁面中選擇不一樣的商品,這些信息都會寫入Cookies,以便在最後付款時提取信息。cookie
網站能夠利用cookies跟蹤統計用戶訪問該網站的習慣,好比什麼時間訪問,訪問了哪些頁面,在每一個網頁的停留時間等。目前Cookies 最普遍的是記錄用戶登陸信息,這樣下次訪問時能夠不須要輸入本身的用戶名、密碼session
三。在jsp中app
jsp中使用cookie完成狀態管理:webapp
cookie也算http消息報頭的一部分,它的做用有如下方面:jsp
一 記錄訪客的某些信息。例如能夠利用cookie記錄用戶光臨的網頁次數,或者訪客曾經輸入過的信息。某些網站能夠自動記錄用戶上次登陸的用戶名,用的就是cookie。
二 頁面之間傳遞變量。瀏覽器並不會保存當前頁面上任何變量的信息,當頁面被關閉時,頁面上的全部變量信息將隨之消失。
使用舉例
在jsp中建立簡單的cookie:
String cookiename="visitTimes";
Cookie cookie=new Cookie(cookiename,"1");
setMaxAge(10*60);//設置cookie存活期
addCookie(cookie);//將cookie寫入客戶端
在jsp中處理cookie數據的經常使用方法:
getDomain();返回cookie的域名.
getMaxAge();返回cookie的存活時間
getName();返回cookie的名字
getPath();返回cookie適用的路徑
getSecure();若是瀏覽器經過安全協議發送Cookie將返回true值,若是瀏覽器使用標準協議剛返回false值
getValue();返回cookie的值
getVersion();返回cookie所聽從的協議版本setComment(String purpose);設置cookie的註釋
setPath(String url);設置Cookie的適用路徑
setSecure(Boolean flag);設置瀏覽器是否僅僅使用安全協議來發送cookie,例如使用Https或ssl
setValue(String newvalue);cookie建立後設置一個新的值
setVersion(int v);設置cookie所聽從的協議版本.
4、總結:尚學堂
1:服務器能夠向客戶端寫內容
2:Cookie只能是文本內容
3:客戶端能夠阻止服務器寫入
4:服務器網站只能讀取本身webapp(網站)寫入的東西
5:Cookie分爲兩種
屬於窗口/子窗口(放在內存中的)
屬於文本(有生命週期的):經過設置Cookie的生命週期
6:一個servlet/jsp設置的cookies可以被同一個路徑下面或者子路徑下面的servlet/jsp讀到 (路徑 = URL)(路徑 != 真實文件路徑)
⑴Http協議的無鏈接性要求出現一種保存C/S間狀態的機制
⑵Cookie:保存到客戶端的一個文本文件,與特定客戶相關
⑶Cookie以「名-值」對的形式保存數據
⑷建立Cookie:new Cookie(name,value)
⑸可使用Cookie的setXX方法來設定一些相應的值
setName(String name)/getName()
setValue(String value)/getValue()
setMaxAge(int age)/getMaxAge()
利用HttpServletResponse的addCookie(Cookie)方法將它設置到客戶端
利用HttpServletRequest的getCookies()方法來讀取客戶端的全部Cookie,返回一個Cookie數組