在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>文档中心>ASP>文档A0000920 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入
相关文章

判断Cookies是否处于开启状态

判断Cookies是否处于开启状态
发表文章
Cookies的使用心得...

作者:happiness     提交人:happiness     发布时间:05-08-09     文章类型:原创     浏览量:3913
参考链结:http://    
关键字:Cookies
[本文档没有附件]
字体:    视力保护色: 杏仁黄  秋叶褐  胭脂红  芥末绿  天蓝  雪青  灰  银河白(默认色) [A0000920]

Cookies是一种用来存信息的对象,存在于客户端,是一种比较实用的对象。在众多的电脑书籍中,对该对象的工作原理总是一笔带过,没有做详细的说明(不过也不能怪作者,微软太保密了)。但Cookies对于网站设计人员来说,却是必不可少的。因为设计者往往需要在客户端保存会员的信息,用户在网站的个人设置等等,如果全靠服务器记忆这些数据,容易造成信息丢失(如Session)和烦琐(如靠数据库储存)等。
    签于此,我把我自己使用Cookies的一些心得写出来,希望对大家有所帮助。
一、ASP中如何使用Cookies:
1、写Cookies代码:
<%
  Response.Cookies("xxx")("aaa") = "111"
  Response.Cookies("xxx")("bbb") = "222"
  Response.Cookies("xxx").Path = "/forum"
  Response.Cookies("xxx").Expires = DateAdd("m",1,now())
%>

    第一句和第二句是对客户端写Cooikes,xxx可以看做是一个数据集合,aaa和bbb分别是集合xxx里的键名,111和222分别是aaa和bbb的值。
    第三句为xxx指定path(只写),即作用域,可以理解为:写到该作用域的数据,只有在站点下的(如forum)文件夹下(包括子文件夹)的页面内才可以读到,即作用域为(如forum)文件夹。如果去掉该句,默认在本站点下(该代码页所在的位置为子文件夹的话)或该代码页所在的虚拟目录下(如果该代码页所在的位置为虚拟目录的话)有效。例如:在子文件夹下不设定path或path="/",生成的cookies作用域为整个站点;在虚拟目录下不设定path,生成的cookies作用域为本虚拟目录;path="/myasp",生成的cookies作用域为站点下myasp子目录...;
    第四句为xxx集合指定expires(只写)失效期。代码所示为一月后失效。有了该句后会在客户IE缓存中生成一个cookies文件,该文件名的命名规则是:如果指定了path,将为path的值(当然无/);如果没有指定path,为该代码页所在的虚拟目录名(如果该代码页所在的位置为虚拟目录的话);如果以上条件都不符合,由客户端的系统自行指定,为Cookie:主机名@域名。如果没有该句,不会生成cookies文件,cookies信息将保存在客户的内存中,该信息在IE进程内有效,即用户关闭该站的所有页面后该信息自行消失。
2、读Cookies代码:
<%
  yyy = Request.Cookies("xxx")("aaa")
  zzz = Request.Cookies("xxx")("bbb")
%>

    该代码可以读到该作用域内的Cookies信息。读cookies的过程是:先从客户端的内存中找该作用域的Cookies信息,如果没有,从客户端的IE缓存中找该作用域的Cookies文件,如果没有,从上级作用域的Cookies文件中去找...如果都没有,将读不到信息。优先级为:内存本作用域>IE缓存本作用域>IE缓存上级作用域...
3、清Cookies代码:
<%
  Response.Cookies("xxx").path = "/forum"
  Response.Cookies("xxx")("aaa") = ""
  Response.Cookies("xxx")("bbb") = ""
%>

    由于ASP无清除Cookies的方法,所以可用令相应作用域相应集合相应键值的内容为空的办法来解决,由于没有指定expires,以往该作用域所生成cookies文件在代码执行后将消失,起到了清除Cookies的作用。
    第一句指定作用域,如果没有该句,默认的操作对象为本站点下的cookies或该代码页所在的虚拟目录的cookies(如果该代码页所在的位置为虚拟目录的话)。所以如果Cookies作用域为文件夹的话,必须指定path。

需要说明的几点:
    1、因为作用域的关系,一个站点下可能生成几个Cookies。所以在使用时一定要分清作用域,以免读写错信息。
    解决的办法为:尽量将站点下分类的文件夹,设成虚拟目录,这样不用指定path,且读写cookies都在本虚拟目录下执行,不易发生错误。
    2、一个作用域下只可能生成一个Cookies,所以要存储多个信息时,可用不同的集合来加以区分。
    3、尽量给客户提供选择Cookies失效期的权力,以免发生客户信息失窃的现象。

二、客户端脚本中使用Cookies:
    由于cookie(注意在此是cookie,不是Cookies)属于IE的document对象的一个属性,所以使用起来远不如ASP方便。但也可以实现一些基本的功能...
1、写Cookies代码:
 运行代码 拷贝代码 保存代码 [可先修改部分代码再运行;请先检查代码确定安全]

    运行以上代码后,查看你的IE临时文件夹下,是不是生成了一个forum文件名的cookies文件?
    path和expires的含义同ASP,只不过用得形式不同而已,失效期字符串的格式必须为(无论JS还是VBS):英文星期, 数字日期 英文月份 yyyy hh:mm:ss UTC不然生不成Cookies...
    str中保存得就是该格式的字符串。
    2、读cookies时,也用document.cookie,只不过读出来的是xxx=aaa=111&bbb=222形式的子符串(当然path和expires是读不出来的),需要按规律做相应分离后才能得到相应的值。有兴趣的朋友可自己分离测试。

关于这篇文章的评论 [注意:这里仅仅是给大家提供了一个发表对文章本身看法的地方,如果有疑问,请到论坛提出] 我要提问!
miles        2005/8/10 14:08:00
:)
好!
happiness        2005/8/9 23:33:00
:)
标题
内容
发言
*您尚未以注册用户身份登录,不能发表评论。这里登录
您的位置
  (c)2000-2019 Yup Studio, all rights reserved.  
185.5469