免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1372 | 回复: 0
打印 上一主题 下一主题

JSP开发中Cookie使用完全详解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-26 11:48 |只看该作者 |倒序浏览

什么是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能帮助站点统计用户个人资料以实现各种各样的个性化服务
在JSP中,我们也可以使用Cookie,来编写一些功能强大的应用程序。
创建Cookie
import="javax.servlet.http.Cookie"
说了这么多,大家一定很想知道JSP是如何创建cookie了。JSP是使用如下的语法格式来创建cookie的:
Cookie cookie_name =new Cookie("Parameter","Value");
例如:
Cookie username_Cookie =new Cookie("username","waynezheng");
response.addCookie(username_Cookie);
解释:JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后Cookie可以通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头,本例中Cookie对象有两个字符串参数:username,waynezheng。注意,名字和值都不能包含空白字符以及下列字符:
@ : ;? , " / [ ] ( ) =
处理Cookie的属性
看到这里,有的朋友又要问了:我光知道如何创建Cookie有什么用呀?是呀,光知道如何创建Cookie而不知道怎么使用是不够的。
在JSP中,程序是通过cookie.setXXX设置各种属性,用cookie.getXXX读出cookie的属性,现在把Cookie的主要属性,及其方法列于下,供大家参考:
类型
方法名
方法解释
String
getComment()
返回cookie中注释,如果没有注释的话将返回空值.
String
getDomain()
返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com)
int
getMaxAge()
返回Cookie过期之前的最大时间,以秒计算。
String
getName()
返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。
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所遵从的协议版本。 <SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Ar

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104854/showart_2078660.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP