ASP中Cookies集合使用方法详解

作者:CODEOF 时间:2007-09-14 10:16:00 

内容摘要:Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器。 ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户。 
  Cookie包含可用两种方式构造的信息,单值cookie提供其值给代码是通过一个一般的类ASP集合。然而,集合的每个成员可能本身也是一个集合,包含这种信息的cookie通过称为多值(multiple-Value)cookie。
  创建一个单值的cookie较为简单,如下所示:

Response.Cookies(“item-name”) = “item-value” 


  创建一个多值的cookie,可以使用如下命令:

Response.Cookies(“item-name”)(“sub-item-name”) = “sub-item-value” 

  设置cookie应用的域及路径及其有效期,我们使用:

Response.Cookies(“item-name”).domain = “domain-url” 
Response.Cookies(“item-name”).path = “virtual-path” 
Response.Cookies(“item-name”).expires = #date# 


  通常,客户只在对创建cookie的目录中的页面提出请求时,才将cookie随请示发住服务器。通过指定path属性,可以指定站点中何处这个cookie是合法的,并且这个cookie将随请求发送。如果cookie随对整个站点的页面请求发送,设置path为“/”。
  假如Expires属性没有设置,关闭当前的浏览器实例时,cookie将被自动消除。
  注意,我们在向浏览器发送任何输出时,已经创建了cookie。因为,这些cookie是页面HTTP报头的一部分。 
  在ASP 3.0中,缓冲的缺省状态是打开的,且没有输出被发送,除非使用Response.Flush指定做这个工作或者页面已到末端。这意味着创建cookie的代码可以在页面上的任何位置,直到任何输出“刷新”(flush)到客户端前,它都可以被执行。
  要读现有的cookie,使用Request.Cookies集合。可以单独访问其中的项目,方法类似于创建它们时使用的方法。

StrSingleValue = Request.Cookies(“item-name”) 
StrSubItemValue = Request.Cookies(“item-name”)(“sub-item-name”) 


  注意Request.Cookies集合(和所有其他Request集合一样)是只读的。Response.Cookies集合是只写的,事实上可以访问这个集合中一系列cookie的名称,而不是它们的值。
  遍历Cookies集合
  为了使用Cookies集合更加方便,可使用名称为Haskeys的附加属性。假如访问的cookie本身也是个集合,即它是一个多值的cookie,这将返回True。使用Haskeys属性,可以遍历完整的Request.Cookies集合,从而获得所有cookie的列表及它们的值。

For Each objItem In Request.Cookies 
If Request.Cookies(objItem).HasKey Then 
‘Use another For Each to iterate all subkeys 
For Each objItemKey in Request.Cookies(objItem) 
Response.Write objItem & “(“ & objItemKey & “) = “_ 
& Request.Cookies(objItem)(objItemKey) & “<BR>” 
Next 
Else 
‘Print out the cookie string as normal 
Response.Write objItem & “ = ”& Request.Cookies(objItem) & “<BR>” 
End If 
Next 


  这非常类似于前面的从Request.Form集合中提取多个值的复杂代码。但是这里可以使用Haskeys属性来判别每个条目是否为一个集合。而在Form例子里,必须查询Request.Form(item_name).Count属性,这是因为Form集合(和所有的除cookie外的其他集合)成员不可能是真正的集合。ASP只是做了“幕后”的工作,得到了每个多条目集合的值。

标签:cookies,asp
0
投稿

猜你喜欢

  • 全面了解JavaScript对象进阶

    2024-04-22 12:47:51
  • Python爬虫实现搭建代理ip池

    2022-05-19 06:57:11
  • JS实现水平遍历和嵌套递归操作示例

    2024-04-22 12:48:01
  • Python登录系统界面实现详解

    2021-02-11 19:24:04
  • PHP信号处理机制的操作代码讲解

    2023-07-14 09:26:49
  • Python是什么 Python的用处

    2021-12-20 05:55:37
  • Python3使用pandas模块读写excel操作示例

    2021-06-30 16:34:47
  • js 轮播效果实例分享

    2023-07-16 00:42:43
  • opencv导入头文件时报错#include的解决方法

    2023-03-28 04:34:34
  • mssql server 存储过程里,bulk insert table from '路径+文件',路径固定,文件名不固定的实现方法

    2024-01-13 17:39:18
  • Matplotlib 绘制饼图解决文字重叠的方法

    2023-06-12 22:23:06
  • Python实现为PDF去除水印的示例代码

    2023-03-05 04:27:56
  • CSS雪碧:要还是不要?

    2009-11-16 13:01:00
  • python监控nginx端口和进程状态

    2023-08-25 16:15:13
  • MYSQL日志的正确删除方法详解

    2024-01-22 13:18:02
  • Java使用正则表达式判断字符串是否以字符开始

    2023-02-16 01:13:47
  • ASP中CACHE缓存技术

    2010-05-03 10:58:00
  • 历数Firefox2.0对XML处理的改进

    2007-11-27 12:41:00
  • 简单PHP上传图片、删除图片实现代码

    2024-05-09 14:49:09
  • 远程连接access数据库的几个方法

    2008-10-21 21:16:00
  • asp之家 网络编程 m.aspxhome.com