JSP中的COOKIE操作

原创 2004年09月14日 16:41:00
Cookie概念:
    Cookie的格式实际上是一段纯文本信息, 由服务器随着网页一起发送到客户端, 并保存在客户端硬盘中指定的目录的. 大家都传说Cookie会造成严重的安全威胁什么的, 其实不是这么回事情. 服务器读取Cookie的时候, 只能够读取到这个服务器相关的信息. 而且, 浏览器一般只允许存放300个Cookie, 每个站点最多存放20个, 而且, 每个Cookie的大小现在在4K, 根本不会占用多少空间. 并且, Cookie是有时效性质的. 例如, 设置了Cookie的存活时间为1分钟, 则一分钟后这个Cookie就会被浏览器删除

Cookie版本:
    目前有两个版本:
    版本0 : 由Netscape公司制定的,也被几乎所有的浏览器支持. Java中为了保持兼容性, 目前只支持到版本0, Cookie的内容中不能空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号。
    版本1 : 根据RFC 2109文档制定的. 放宽了很多限制. 上面所限制的字符都可以使用. 但为了保持兼容性, 应该尽量避免使用这些特殊字符.

JSP中对Cookie的操作: 类型 方法名 方法解释 
String getComment() 返回cookie中注释,如果没有注释的话将返回空值. 
String getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始 
int getMaxAge() 返回Cookie过期之前的最大时间,以秒计算。 
String getName() 返回Cookie的名字 
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。 
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。 
String getValue() 返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。 
int getVersion() 返回Cookie所遵从的协议版本。 
void setComment(String purpose) 设置cookie中注释 
void setDomain(String pattern) 设置cookie中Cookie适用的域名  
void setMaxAge(int expiry) 以秒计算,设置Cookie过期时间。 
void setPath(String uri) 指定Cookie适用的路径。 
void setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。 
void setValue(String newValue) cookie创建后设置一个新的值。 
void setVersion(int v) 设置Cookie所遵从的协议版本 

一个简单的例子
1. 写入Cookie --- writecookie.jsp
-------------------------------------------------------------
<%@ page contentType="text/html; charset=ISO8859_1" %>
<%
  Cookie _cookie=new Cookie("user_delfancom", "delfan");
  _cookie.setMaxAge(30*60); // 设置Cookie的存活时间为30分钟
  response.addCookie(_cookie); // 写入客户端硬盘
  out.print("写Cookie完成");
%>

2. 读取Cookie.jsp --- readcookie.jsp
-------------------------------------------------------------
<%
  Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
  Cookie sCookie=null; 
  String sname=null;
  String name=null;
  if(cookies==null) // 如果没有任何cookie
    out.print("none any cookie");
  else
  {
    out.print(cookies.length + "<br>");
    for(int i=0;i<cookies.length; i++) // 循环列出所有可用的Cookie
    {
      sCookie=cookies[i];
      sname=sCookie.getName();
      name = sCookie.getValue();
      out.println(sname + "->" + name + "<br>");
    }
  } 
%>

需要注意的两个问题:
1. Cookie有个适用路径的问题, 就是说如果 writecookie.jsp和readcookie.jsp要放在同意目录下, 如果不在同一目录下, 则写的时候需要设置路径,为readcookie.jsp所在的路径.
2. 读入Cookie数组的时候需要判断是否为空(null), 网上很多代码都没有写出这一点. 

js/jsp操作cookie的方法

最近项目用到了自动登录功能,使用到了cookie。 一、cookie简介    浏览器与WEB服务器之间是使用HTTP协议进行通信的;而HTTP协议是无状态协议。也就是说,当某个用户发出页面请求...
  • zmx729618
  • zmx729618
  • 2016年05月10日 11:29
  • 3696

JSP Cookie的创建与读取

"> 创建Cookie
  • baidu_25310663
  • baidu_25310663
  • 2015年06月12日 15:48
  • 2247

jsp中cookie与session等自己总结精华

(1)  JSP中的九大内置对象 page  request session   application   pagecontext   response  config  out         ...
  • sky_sea_desert_me
  • sky_sea_desert_me
  • 2016年11月12日 19:22
  • 725

回看JSP——Cookie的用法

一、HTTP协议的无状态性 因为HTTP协议是无状态的,也就是说当用户发送一次请求给服务器之后,服务器响应客户端的请求,当同一个客户端再次发送请求给服务器时,服务器并不知道这个请求是同一个客户端发送...
  • u011024652
  • u011024652
  • 2016年07月24日 20:36
  • 934

jsp页面获取到后台的cookie(登录时记住我)

总结页面获得cookie的方法有哪些, org.springframework.web.util.WebUtils 该方法需要引入上述类 Cookie cookie = WebUtils.getCo...
  • qq_32233421
  • qq_32233421
  • 2016年03月21日 17:42
  • 6337

jsp中cookie取中文值乱码

cookie中放中文值在页面上取的时会出现乱码,以下方法可解决。 servlet: String username = request.getParameter("username"); ...
  • lee4037
  • lee4037
  • 2014年11月28日 17:39
  • 867

手把手做一个JSP入门程序(七):使用Cookie实现浏览记录(JSP)

为了能够实现保存用户浏览记录的功能,我们可以将用户浏览过的书籍的ISBN保存到Cookie中,然后在服务器通过Cookie中的ISBN来获取到相应书籍的信息。...
  • DoneSpeak
  • DoneSpeak
  • 2017年02月19日 03:32
  • 1263

jsp 获取cookie 的值的方法

转载自:http://www.cnblogs.com/yezhenhan/archive/2011/01/07/1930287.html Cookie cookies[]=request...
  • u012377333
  • u012377333
  • 2016年03月02日 17:41
  • 4431

jsp处理cookie乱码的问题

使用String value = java.net.URLEncoder.encode(中文);Cookie cookie = new Cookie("key",value);response.add...
  • chaiqi
  • chaiqi
  • 2007年12月18日 16:27
  • 2160

在jsp中怎么使用Cookie?el表达式中获取cookie的问题

在jsp中怎么使用Cookie? 2006-10-04 01:27diqigan0623 | 分类:其他编程语言 | 浏览21873次 初学jsp,不清楚cookie的使用方法,希望高手指点一下! ...
  • tang898
  • tang898
  • 2013年12月14日 23:30
  • 6650
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP中的COOKIE操作
举报原因:
原因补充:

(最多只允许输入30个字)