教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

java培訓(xùn)之Cookie與HttpSession

更新時間:2016年06月30日14時48分 來源:傳智播客java培訓(xùn) 瀏覽次數(shù):

Cookie概述

 
1 什么叫Cookie
Cookie翻譯成中文是小甜點,小餅干的意思。在HTTP中它表示服務(wù)器送給客戶端瀏覽器的小甜點。其實Cookie就是一個鍵和一個值構(gòu)成的,隨著服務(wù)器端的響應(yīng)發(fā)送給客戶端瀏覽器。然后客戶端瀏覽器會把Cookie保存起來,當(dāng)下一次再訪問服務(wù)器時把Cookie再發(fā)送給服務(wù)器。
 

2 Cookie規(guī)范
你大可以放心,Cookie不會占滿你的硬盤。因為一個Cookie最多只有4KB,一個服務(wù)器最多只能發(fā)送到客戶端20個Cookie,并且瀏覽器最多可以保存300個Cookie。當(dāng)然,在瀏覽器大戰(zhàn)的今天,一些瀏覽器為了打敗對手,可能對Cookie規(guī)范“擴(kuò)展”了一些,例如每個Cookie的大小為8KB,最多可保存500個Cookie等!但也不會出現(xiàn)把你硬盤占滿的可能!
不同的瀏覽器之間不能共享Cookie?。?!
 

3 Cookie的作用
Cookie的作用可大了,但無論怎么夸大Cookie的作用都離不開“跟蹤客戶端狀態(tài)”這句話。我們知道Cookie是服務(wù)器保存在客戶端的信息,然后客戶端會在下次請求時把Cookie在還給服務(wù)器,這樣服務(wù)器就可以通過信息來識別客戶端了。
就好比你去醫(yī)院看病,第一次去需要買卡片,然后你去任何科室都需要你出示卡片。只要你出示卡片,醫(yī)生就會知道你去過哪些科室,看了哪些??!卡片上只有一個ID,它就是Cooke,而你本人就是客戶端,而醫(yī)生就是服務(wù)器了。

4 Cookie的屬性
Cookie最重要的4個屬性:
  • 名字(name);
  • 值(value);
  • 路徑(path);
  • 域(domain)。
 
現(xiàn)在我們只需要關(guān)心name和value,而path和domain可以先不去了解!但后面也會去講解它們的用法。
javax.servlet.http.Cookie類只有一個構(gòu)造器:Cookie(String name, String value)。你應(yīng)該知道怎么去創(chuàng)建一個Cookie對象吧:Cookie c = new Cookie(“id”, “HZ_001”);
 

5 保存Cookie到客戶端
保存Cookie到客戶端,這是響應(yīng)工作的一部分,所以這個方法是response對象的。并且Cookie是HTTP協(xié)議中的內(nèi)容,所以保存Cookie是HttpServletResponse類的方法。
void addCookie(Cookie c):添加Cookie對象到當(dāng)前response對象中,這個方法可以被調(diào)用多次,從而完成添加多個Cookie對象到response中。


 
 
 使用瀏覽器訪問http://localhost/day07_03/AServlet,然后通過HttpWatch查看響應(yīng)頭信息中是否存在Set-Cookie這個頭信息。
  當(dāng)再交方法http://localhost/day07_03/AServlet時,查看請求頭信息中是否存在Cookie這個頭信息。當(dāng)然也可以嘗試訪問http://localhost/day07_03/BServlet是否在請求頭中存在Cookie這個頭信息。
 嘗試訪問http://localhost/day07_03/BServlet,你可能會說,BServlet不存在,沒錯,BServlet是不存在,但我們只關(guān)心請求,而不關(guān)心響應(yīng)。我們只需要看看在請求中是否存在Cookie這個頭信息。你應(yīng)該已經(jīng)嘗試過了,也看到了Cookie請求頭信息。這說明不只是訪問AServlet才會有Cookie請求頭信息,而是只要訪問這個day07_03就會有Cookie這個請求頭。
 

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://metathetuscanyresort.com/javaee
0 分享到:
和我們在線交談!