全国咨询/投诉热线:400-618-4000

java培训之Cookie与HttpSession

更新时间:2016年06月30日14时48分 来源:传智播客java培训 浏览次数:

Cookie概述

 
1 什么叫Cookie
Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。
 

2 Cookie规范
你大可以放心,Cookie不会占满你的硬盘。因为一个Cookie最多只有4KB,一个服务器最多只能发送到客户端20个Cookie,并且浏览器最多可以保存300个Cookie。当然,在浏览器大战的今天,一些浏览器为了打败对手,可能对Cookie规范“扩展”了一些,例如每个Cookie的大小为8KB,最多可保存500个Cookie等!但也不会出现把你硬盘占满的可能!
不同的浏览器之间不能共享Cookie!!!
 

3 Cookie的作用
Cookie的作用可大了,但无论怎么夸大Cookie的作用都离不开“跟踪客户端状态”这句话。我们知道Cookie是服务器保存在客户端的信息,然后客户端会在下次请求时把Cookie在还给服务器,这样服务器就可以通过信息来识别客户端了。
就好比你去医院看病,第一次去需要买卡片,然后你去任何科室都需要你出示卡片。只要你出示卡片,医生就会知道你去过哪些科室,看了哪些病!卡片上只有一个ID,它就是Cooke,而你本人就是客户端,而医生就是服务器了。

4 Cookie的属性
Cookie最重要的4个属性:
  • 名字(name);
  • 值(value);
  • 路径(path);
  • 域(domain)。
 
现在我们只需要关心name和value,而path和domain可以先不去了解!但后面也会去讲解它们的用法。
javax.servlet.http.Cookie类只有一个构造器:Cookie(String name, String value)。你应该知道怎么去创建一个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培训学院
首发:http://www.itcast.cn/javaee