Servlet之cookie处理--Java学习网

时间:2016-12-5 8:10:51

  核心提示:Cookies 通常设置在 HTTP 头信息中(虽然JavaScript 也可以直接在浏览器上设置一个 Cookie)。设置 Cookie 的 Servlet 会发送如下的头信息:HTTP/1.1 2...

Cookies 通常设置在 HTTP 头信息中(虽然JavaScript 也可以直接在浏览器上设置一个 Cookie)。设置 Cookie 的 Servlet 会发送如下的头信息:

  1. HTTP/1.1 200 OK
  2. Date: Fri, 04Feb 2000 21:03:38 GMT
  3. Server:Apache/1.3.9 (UNIX) PHP/4.0b3
  4. Set-Cookie: name=xyz; expires=Friday, 04-Feb-0722:03:38 GMT;
  5. path=/;
  6. domain=w3cschool.cc
  7. Connection:close
  8. Content-Type:text/html
复制代码

Set-Cookie 头包含了一个名称值对、一个GMT 日期、一个路径和一个域。名称和值会被 URL 编码。expires 字段是一个指令,告诉浏览器在给定的时间和日期之后"忘记"该 Cookie


以下是在 Servlet 中操作 Cookies 时可使用的有用的方法列表。

1 public void setDomain(String pattern)

该方法设置 cookie 适用的域,例如w3cschool.cc。

2 public String getDomain()

该方法获取 cookie 适用的域,例如w3cschool.cc。

3 public void setMaxAge(int expiry)

该方法设置 cookie 过期的时间(以秒为单位)。如果不这样设置,cookie 只会在当前 session 会话中持续有效。

4 public int getMaxAge()

该方法返回 cookie 的最大生存周期(以秒为单位),默认情况下,-1 表示 cookie 将持续下去,直到浏览器关闭。

5 public String getName()

该方法返回 cookie 的名称。名称在创建后不能改变。

6 public void setValue(String newValue)

该方法设置与 cookie 关联的值。

7 public String getValue()

该方法获取与 cookie 关联的值。

8 public void setPath(String uri)

该方法设置 cookie 适用的路径。如果您不指定路径,与当前页面相同目录下的(包括子目录下的)所有 URL 都会返回 cookie。

9 public String getPath()

该方法获取 cookie 适用的路径。

10 public void setSecure(boolean flag)

该方法设置布尔值,表示 cookie 是否应该只在加密的(即SSL)连接上发送。

11 public void setComment(String purpose)

该方法规定了描述 cookie 目的的注释。该注释在浏览器向用户呈现 cookie 时非常有用。

12 public String getComment()

该方法返回了描述 cookie 目的的注释,如果cookie 没有注释则返回 null。

创建一个 Cookie 对象:

  1. Cookie cookie = newCookie("key","value");
复制代码


无论是名字还是值,都不应该包含空格或以下任何字符:

[ ] ( ) = ," / ? @ : ;

设置最大生存周期:

cookie.setMaxAge(60*60*24); //以秒为单位

添加Cookies:

response.addCookie(cookie);

删除Cookie就是把生命周期设置为0

cookie.setMaxAge(0);

设置Cookie的使用路径

cookie.setPath(“/sessionWeb/”); //只有contextPath为”/ sessionWeb”的程序才能访问该cookie,参数必须以”/”结尾

设置Cookie的访问域名

cookie.setDomain(“.google.com”); //所有以”.google.com”结尾的域名都可访问该cookie

中文属于Unicode编码,在内存中占四个字符,而英文属于ASCII字符,内存中只占两个字符,cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会出现乱码,编码可以使用java.net.URLEncoder类中的方法


  1. Cookie cookie =new Cookie(
  2. URLEncoder.encode("姓名","UTF-8"),
  3. URLEncoder.encode("张三","UTF-8")
  4. );
  5. response.addCookie(cookie);
  6. if(request.getCookies()!= null){
  7. for(Cookie cookie : request.getCookies()){
  8. String name = URLEncoder.decode(cookie.getName(),"UTF-8");
  9. String name =URLEncoder.decode(cookie.getValue(),"UTF-8");
  10. }
  11. }

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

Tags:处理 学习 
作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号