码迷,mamicode.com
首页 > 编程语言 > 详细

Java Cookie详解

时间:2016-06-03 19:01:41      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

    Cookie 的作用我想大家都知道,通俗地说就是当一个用户通过 HTTP 协议访问一个服务器的时候,这个服务器会将一些 Key/Value 键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下次访问这个服务器的时候,数据又被完整地带回给服务器。

    当前 Cookie 有两个版本:响应头的标识分别是 “Set-Cookie”和“Set-Cookie2”。Cookies版本0(有时被称为Netscape Cookies)和Cookies版本1(RFC2965)。

Version 0

    

属性项属性项介绍
NAME=VALUE 键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样
Expires 过期时间,在设置的某个时间点后该 Cookie 就会失效,如 expires=Wednesday, 09-Nov-99 23:12:40 GMT
Domain 生成该 Cookie 的域名,如 domain="xulingbo.net"
Path 该 Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/
Secure 如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie

Version 1

NAME=VALUE 与 Version 0 相同
Version 通过 Set-Cookie2 设置的响应头创建必须符合 RFC2965 规范,如果通过 Set-Cookie 响应头设置,默认值为 0,如果要设置为 1,则该 Cookie 要遵循 RFC 2109 规范
Comment 注释项,用户说明该 Cookie 有何用途
CommentURL 服务器为此  Cookie 提供的 URI 注释
Discard 是否在会话结束后丢弃该 Cookie 项,默认为 fasle
Domain 类似于 Version 0
Max-Age 最大失效时间,与 Version 0 不同的是这里设置的是在多少秒后失效
Path 类似于 Version 0
Port 该 Cookie 在什么端口下可以回传服务端,如果有多个端口,以逗号隔开,如 Port="80,81,8080"
Secure 类似于 Version 0

    格式:

    可以有多个NAME/VALUE,用英文分号分隔开。如果有其他属性如path,也是键值对并且用分号分隔开。如Set-Cookie: NAME=VALUE; NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE。

    用法如下:

    需要用到javax.servlet.http.Cookie对象,这个对象支持version0和version1,只是个别属性没法设置。

 

HttpServletRequest request  
HttpServletResponse response
Cookie cookie = new Cookie("cookiename","cookievalue");
cookie.setMaxAge(3600);
response.addCookie(cookie);

 

    其他的属性设置是类似的。想要获取cookie的话,如下:

 

Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
    cookie.getName();
    cookie.getValue(); 
}

 

Java Cookie详解

标签:

原文地址:http://www.cnblogs.com/gjb724332682/p/5557096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!