Cookie的应用.docx
- 文档编号:2990358
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:24.20KB
Cookie的应用.docx
《Cookie的应用.docx》由会员分享,可在线阅读,更多相关《Cookie的应用.docx(22页珍藏版)》请在冰豆网上搜索。
Cookie的应用
第16章:
Cookie的使用
Win7中Cookies的位置:
C:
\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies
XP中Cookies的位置:
C:
\DocumentsandSettings\Administrator\Cookies
16.1什么是Cookie
对Cookie比较确切的定义是:
“Cookie是Web服务器保存在用户硬盘上的一段文本。
Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。
信息的片段以‘名/值’对(Name-ValuePairs)的形式存储”
Cookie的格式实际上是一段纯文本信息,由服务器随着网页一起发送到客户端,并保存再客户端硬盘中指定的目录下。
与不同服务器相关的Cookie是分别保存的,服务器读取Cookie的时候,只能够读取与这个服务器相关的信息,所以不会存在什么安全隐患。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个,每个Cookie的大小不超过4K,不会占用多少空间。
而且Cookie是具有时效性质的,例如设置了Cookie的存活时间为1分钟,则1分钟后这个Cookie就会被浏览器删除。
目前Cookie由两个版本:
版本0:
由Netscape公司制定的,也被几乎所有的浏览器支持,Java中为了保持兼容性,目前只支持到版本0,Cookie内容中不能由空格、方括号、圆括号、等号、逗号、双引号、斜杠、问号、@、冒号和分好。
版本1:
是根据RFC2109文档制定的,它放宽了很多限制,上面所限制的字符都可以使用,但为了保持兼容性,应该尽量避免使用这些特殊字符。
Cookie最根本的用途是能够帮助Web服务器保存访问者的相关信息。
16.2如何使用Cookie
16.2.1创建Cookie
Cookie其实是Java提供的一个类,构造函数的参数包括两个字符串(Cookie的名称和值),语法格式如下:
Cookiecookie=newCookie(“CookieName”,”cookieValue”);
16.2.2读取和设置Cookie属性
用户可以通过下面的方法来查看和设置Cookie对象的属性:
●StringgetComment():
返回Cookie中的注释,如果没有注释的话返回空值。
●StringgetDomain():
返回Cookie中Cookie适用的域名。
可以指示浏览器把Cookie返回给同一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。
注意域名要以点开始。
●intgetMaxAge():
返回Cookie过期之前的最大时间,以秒为单位进行计算。
默认是浏览器关闭,Cookie就被删除。
●StringgetName():
返回Cookie的名字
●StringgetPath():
返回Cookie适用的路径。
如果不指定路径Cookie将返回给当前页面所在目录及其子目录下的所有页面。
●booleangetSecure():
如果浏览器通过安全协议发送Cookie将返回true,如果浏览器适用标准协议则返回false值。
●StringgetValue():
返回Cookie的值。
●intgetVersion():
返回Cookie所遵从的协议版本。
●voidsetComment(Stringpurpose):
设置Cookie中的注释。
●voidsetDomain(Stringpattern):
设置Cookie中Cookie适用的域名。
●voidsetMaxAge(intexpiry):
以秒计算,设置Cookie过期时间。
●voidsetPath(Stringuri):
指定Cookie适用的路径。
●voidsetSecure(Booleanflag):
指出浏览器使用的安全协议。
●voidsetValue(StringnewValue):
Cookie创建后设置一个新的值。
●voidsetVersion(intv):
设置Cookie所遵从的协议版本。
下面以setMaxAge为例,演示这些方法如何适用,代码如下:
Cookiecookie=newCookie("myCookie","fxq");
cookie.setMaxAge(30*60);//设置Cookie的存活时间为30分钟
response.addCookie(cookie);//写入客户端硬盘
16.2.3再应答头中设置Cookie
在JSP编程中利用内置对象response的addCookie方法将Cookie写入客户端。
语法如下:
response.addCookie(Cookie对象名);
下面给出一个具体示例,该示例中将建立一个新的Cookie对象,并设置它的存活时间为30分钟,最后适用应答对象response的addCookie()方法将该Cookie写入客户端。
代码如下:
<%@pagelanguage="java"import="java.util.*,java.sql.*"
pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
写Cookie到客户端,存活时间为30分钟:
<%
Cookiecookie=newCookie("myCookie","fxq");
cookie.setMaxAge(30*60);//设置Cookie的存活时间为30分钟
response.addCookie(cookie);//写入客户端硬盘
out.print("写Cookie完成");
%>
运行之后再客户端的Cookies目录(C:
\DocumentsandSettings\Administrator\Cookies)下生成对应的文件。
16.2.4读取保存到客户端的Cookie
将Cookie写到客户端是为了以后得到其中保存的数据,这里可以通过request对象的getCookies方法从中读取数据,语法格式如下:
Cookie[]变量名=request.getCookies();
客户端传来的Cookie数据类型都是数组类型,要得到其中的某一项必须遍历数组来得到,下面给出一个示例,用于读出上面示例中写到客户端的Cookie,代码如下:
<%@pagelanguage="java"import="java.util.*,java.sql.*"
pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<%
out.print("
读取客户端的某一指定Cookie,结果如下:
");
Cookiecookies[]=request.getCookies();
//将适用目录下所有Cookie读入并存入cookies数组中
Cookiecookie=null;
Stringname=null;
Stringvalue=null;
if(cookies==null){//如果没有任何cookie
out.print("noneanycookie");
}else{
if(cookies.length==0){
out.print("客户端不支持Cookie!
");
}else{
for(inti=0;i cookie=cookies[i]; name=cookie.getName(); value=cookie.getValue(); if(name.equals("myCookie")){ out.print(name+"->"+value+" } } } } %> 读取Cookie必须注意两个问题: 如果读取结果为空,则说明这个客户端没有对应该服务器的Cookie;如果Cookies数组长度为零,说明客户端浏览器不支持Cookie技术。 在30分钟内,读出的结果: myCookie->fxq 16.2.5获取指定名字的Cookie值 编写一个方法,根据给出的cookieName得到对应的值。 publicStringgetCookieValue(Cookie[]cookies,StringcookieName, StringdefaultValue){ for(inti=0;i Cookiecookie=cookies[i]; if(cookie.getName().equals(cookieName)){ returncookie.getValue(); } } returndefaultValue; } 16.2.6自动保存 如果希望浏览器退出的时候自动保存下来,可以用下面这个LongLivedCookie类代替Cookie类,代码如下: importjavax.servlet.http.Cookie; publicclassLongLivedCookieextendsCookie{ publicstaticfi
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Cookie 应用