Cookie

把用户名写入Cookie
String userName1 = request.getParameter("userName");
String userName2 = new String(userName1.getBytes("ISO-8859-1"),"UTF-8");
String userName3 = URLEncoder.encode(userName2,"utf-8");//中文需要编码
Cookie cookie = new Cookie("cookieName",userName3);
cookie.setMaxAge(365*24*60*60);//存活期一年
response.addCookie(cookie);

读出Cookie里的数据
Cookie myCookie[]=request.getCookies();
for(int n = 0; n < myCookie.length-1; n++){
Cookie newCookie= myCookie[n];
String userName = newCookie.getName();
if(userName.equals("cookieName")){
String userName2 = newCookie.getValue();
String userName3 = URLDecoder.decode(userName2,"UTF-8");
System.out.println("你好,"+userName3);
}
}

删除Cookie里的数据
Cookie deleteCookie = new Cookie("cookie",null);
deleteCookie.setMaxAge(0);
deleteCookie.setPath("/");
response.addCookie(deleteCookie);

什么是cookies?
  大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C:\\windows\\cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。

  cookies给网站和用户带来的好处非常多:

  1、Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径
  2、Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告

  3、Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点

  4、Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务

处理Cookie的属性(附件图)

需要注意的一些问题

通过上面两个简单的例子,可以看到,用JSP进行Cookie的操作,是非常简单的。不过我们在实际操作中还要注意一些问题:

1. Cookie的兼容性问题

Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version 0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC 2109文档制定的。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。

2. Cookie的内容

同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为Cookie的内容。这也就是为什么我们在例子中设定Cookie的内容为"Test_Content"的原因。

虽然在Cookie Version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的Cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在Cookie的内容中尽量避免使用这些字符。(karry/大众网络报)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值