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

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

java培訓之Cookie與HttpSession

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

Cookie概述

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

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

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

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

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


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

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