您的位置:首页 > 编程语言

Servlet编程专题6之Cookie

2017-10-26 09:44 232 查看
1、Cookie简介:
- Cookie是1993年由网景公司(Netscape)前雇员发明的一种进行网络会话状态跟踪的技术。
- 会话则是由一组请求和响应组成,是围绕着一件相关事情所进行的请求和响应。所以这些请求和响应之间一定是需要有数据传递的,即是需要进行会话状态跟踪的。然而HTTP协议是一种无状态协议,在不同的请求间是无法进行数据传递的。此时就需要一种可以进行请求间数据传递的会话跟踪技术,而Cookie就是一种这样的技术。
- Cookie是由服务器生成的,保存在客户端的一种信息载体。这个载体中存放着用户访问该站点的会话状态信息。只要Cookie没有被清空,或者Cookie没有失效,那么保存在其中的会话状态就会有效。
- 用户在提交第一次请求后,由服务器生成Cookie,并将其封装到响应头中,以响应的形式发送给客户端。客户端接收到这个响应后,将Cookie保存到客户端中。当客户端再次发送同类请求后,在请求中会携带保存在客户端的Cookie数据,发送到服务端,由服务器对会话进行跟踪。
- Cookie技术并不是JavaWeb开发专属技术,而是属于Web开发的技术,是所有Web开发语言均支持的技术。
- Cookie是由若干键值对构成的,这里的键一般称为name,值称为value。Cookie中的键值对均为字符串。

2、火狐下查看Cookie:
- 不同的浏览器,其Cookie的保存位置以及查看方式是不同的。删除了某一浏览器下的Cookie,不会影响到其他浏览器中的Cookie。
- 在火狐浏览器下可以直接查看到Cookie的信息,其查看的位置在:选项 -> 隐私与安全中 -》移除特定网站的Cookie









3、JavaEE中的Cookie:
- 在JavaEE中的javax.servlet.http包中存在一个类Cookie,就是用于完成会话跟踪的Cookie。其只有一个带参构造器:



- 而
javax.servlet.http.HttpServletResponse接口中有一个方法,可以将Cookie添加到响应头中:




- 主要注意的是,一个response中可以添加多个Cookie的键值对。

a、默认绑定的路径:访问路径由资源路径和资源名称构成。默认情况下,Cookie与访问路径中的资源路径绑定。只要用户发出带有绑定资源路径的请求,则在请求头部,将自动会携带与之绑定的Cookie数据。
- Cookie类中可以指定Cookie绑定路径:(需要注意的是,这里指定的路径必须要求添加项目名称)





- 如:





b、Cookie的有效期(存放到缓存或者是硬盘上的问题):使用addCookie(Cookie cookie)方法在浏览器中添加的Cookie默认是写在缓存中,可以使用setMaxAge(int expiry)方法设置Cookie的有效期。
- 传入的值为一个整型值(单位为秒)。当该值大于0,表示将Cookie存放到客户端的硬盘中;该值小于0,与不设置的效果相同,会将Cookie存放到浏览器的缓存中;该值等于0,表示Cookie一生成,马上失效:






c、服务器获取和解析Cookie:
-
javax.servlet.http.HttpServletRequest接口中的getCookies()方法:返回客户端发送请求所包含的所有Cookie对象,以数组的形式返回。




- javax.servlet.http.Cookie类中的getName()方法和getValue()方法,用于获取cookie对象的名字和值:






- 示例代码如下:





4、火狐中如何禁用Cookie:选项 -> 隐私与安全 -> 历史记录 -> 使用自定义设置 -> 不勾选“接受来自网站的Cookie”







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  简介 Cookie