JavaWeb学习-会话管理系列-2-cookie API介绍

在认识cookie之前,我们来打开j2ee chm文档,先来阅读下cookie的API介绍,先从整体上对cookie有一个基本掌握。然后我们接下来根据cookie属性和相关代码方法进行demo演示。

1. cookie API内容介绍

打开j2ee chm文档,搜索cookie,cookie是javax.servlet.http包下的一个公共类。其中可以看到以下文字描述

1)创建一个cookie。它是由一个 servlet发送给 Web浏览器的一定数量的信息,它由浏览器保存,
并在之后重新发送给服务器。一个cookie的值能唯一的标示一个客户机,因此cookie通常用于会话管理。 

2)一个cookie拥有一个名字,一个单独的数值,和一些可选属性例如:注释,路径,域限定器,
最大期限值和版本序号。一些 Web浏览器在处理可选属性时会有一些bug,因此要保守地使用它们以改善你的servlet 的互用性、兼容性。 

3)servlet用HttpServletResponse.addCookie(javax.servlet.http.Cookie) 方法 向浏览器发送 cookies ,
该方法向HTTP响应消息的头部增加了域,以向浏览器发送cookies 每次一个。
浏览器被期望能够为每个服务器支持20个cookies,cookies总量可达到300个。并且将每个cookies的大小限制在4 KB。 

4)浏览器通过向 HTTP 请求消息的头部加入响应的域来返回cookies, cookies能够通过使用 HttpServletRequest.getCookies() 方法 
来从一个请求消息中重新获得cookies。几个cookies可以有相同的名字,但必须有不同的路径。

2.cookie API内容解读

第一点:我们可以得到这些信息

1)创建一个cookie,是servlet发送给浏览器的信息,说明cookie是浏览器往服务器第一次发送请求之后,servlet往浏览器发送响应过程中创建的。

2)cooie保存在浏览器,所以cookie也叫客户端技术,cookie存储在本地浏览器的缓存里。

3)浏览器再次往服务器发送请求的时候,这个时候会带上cookie,cookie包含客户端一些数据。

4)一个cookie的值能表示唯一的一个客户端,这里具体怎么表示唯一,我们后面学习到。

 

第二点:我们可以得到这些信息。

1)cookie有名字,是一个单独数值

2)名字包括一些可选属性,路径,域限定器,最大限期值和版本号。这个路径概念很重要,例如打开淘宝,产生cookie会路径指向淘宝,打开京东产生cookie的路径会指向京东。

3)不同浏览器,可能需要额外处理好兼容性问题。

 

第三点:我们可以得到以下知识

1)Servlet往浏览器发送cookie之前,需要通过response.addCookie()方法来添加一个cookie。这个其实就是在响应头中添加一个字段和值的功能。添加好了,然后发送给浏览器。

2)一个浏览器在访问同一个服务器应用的时候,最多支持20个cookies,例如一个火狐浏览器访问淘宝服务器,火狐浏览器端最多支持200个cookie。

3)一个客户端,也就是浏览器能访问多个不同应用服务器,最多一共支持300个cookie。也就是一个浏览器,同时最多访问15个不同web服务器,每个服务器支持20个cookie,最多一共支持300个cookie。

4)每一个cookie都是有大小限制,一般在4kb以内。所以,其实cookie只能保留少量数据,大量数据就不适合cooike的方式。

 

第四点:

1)浏览器第二个访问服务器的时候,通过给请求消息头中,添加cookie信息,发送请求给服务器。

2)请求对象是可以通过request.getCookie()来获取cookie对象

3)不同cookie可以有相同名字,但是路径必须不同。这里理解这句话,例如我一个cookie存储淘宝的一个电视机内容,这个cookie名称就叫电视机。另外一个cookie存储京东的电视机内容,名称也叫电视机,但是这两个cookie路径必须不同。因为一个路径指向京东,一个执行淘宝,所以这样能区分开来。

 

3.coookie类成员方法

getComment() 返回用于描述cookie的目的的注释,如果没有注释,就返回一个空值
getDomain()    返回cookie设置域名
getMaxAge()  返回cookie的最大存活时间,以秒计算,在缺省情况下,-1标示该cookie将一致持续到浏览器shutdown为止。
getName()      返回cookie的名称
getPath()        返回服务器上浏览器返回cookie路径
getValue()      返回cookie的取值
getVersion()   返回cookie遵从协议版本
setCommnet() 指定一个注释来描述cookies目的
setDomain()    指明cookie应当被声明的域
setMaxAge()   设置以秒计的cookie的最大存活时间。
setPath()        指定客户端将cookie返回的cookie的路径。
setValue()      在一个cookie创建之后,给其分配一个新的值。
setVersion()   设置本cookie遵循的cookie的协议的版

这些方法看起来多,其实就是一半,都是一些set和get方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值