当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP编程技术学习:Cookie集合

ASP
javascript asp教程More About Recordsets
javascript asp教程添加和修改
javascript asp教程 日期相关
简单的ASP分页代码(测试正确)
用ASP打开远端MDB文件的方法
asp下同一空间多绑多哥域名的方法
asp下实现替换远程文件为本地文件并保存远程文件的代码
asp,VBscript语法错误,史上最全最详细最精确
讲解ASP方面的知识比较全的asp学习教程
给万博系统的新闻系统增加分页功能[配有详细说明]
在asp中通过vbs类实现rsa加密与解密的代码
一段在asp中加密与解密对应的函数
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
用ASP VBS xmlhttp adodbstream下载和保存图片的代码
厉害的用Asp获取Dll加密新闻内容
用正则和xmlHttp实现的asp小偷程序
ASP之简化创建关闭记录集对象并创建使用简单的MSSQL存储过程
ASP中怎么实现SQL数据库备份、恢复!
asp中实现随机分组程序的代码
asp之字符串操作函数

ASP编程技术学习:Cookie集合


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-22   浏览: 135 ::
收藏到网摘: n/a

     Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据。Request和Response对象都有一组Cookie。


  Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie

   1、ExpiresAbsolute属性

  该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了。通过给Expires属性赋一个过期的日期,就可以删除Cookie。如:

<%Response.cookies("passtime").
expiresAbsolute="1/1/99"%>

  2、Domain属性

  该属性定义Cookie要传送的唯一域。如:Cookie只传送给Microsoft的人,则可以使用以下代码。

<%Response.Cookies("domain").Domain="www.microsoft.com"%>

  3、ASP用来写入Cookie即向客户机发送Cookie的语法如下: 

  Response.Cookie("Cookie名").[("键名").属性]=内容

  如果某个ASP文件要创建一个Cookie,则下面的代码可以放在ASP文件的第一个<html>之前,以避免产生错误.

<%Response.Cookies("CookieName")="NewCookie" %>
<html>
......
</html>

  4、同样ASP用Request对象的Cookies集合来读取Cookie,如:

<%Response.write Request.Cookies("CookieName")%>

  下面以一个完整的例子来说明Cookie:

<%
dim Num
Num=Request.Cookies("Visit_num")
if Num>0 then
Num=Num+1
Response.write "您已是第" & Num & "次访问本站点了。"
else
Response.write "欢迎您首次访问本站。"
Num=1
end if
Response.Cookies("Visit_num")=Num
%>

  在该例子中,首先读取Cookies变量Visit_num,看用户端计算机是否保存有Cookies变量。如果有该变量,则说明用户已经访问过该页面,同时输入出访问次数。如果用户是首次访问该页面,则其计算机内不会有Cookies变量,程序会显示“欢迎”字样,然后将Cookies变量Visit_num存到用户计算机中,以便该用户下一次访问该页面时给出“访问的次数”信息。

  5、Cookie字典

  有时在一个页面中可能需要定义很多个Cookies变量,为了更好地管理它,在Cookies组件中常引入一人的概念“子键”。引用它的语法如下:

  Request.Cookies("变更名")("子键名")  

  如下面的Cookie创建一个名为"Dictionary"的字典,其中保存了三个键值:

<%
Response.Cookie("info")("Myname")="jeff"
Response.Cookie("info")("Gender")="male"
Response.Cookie("info")("Myheight")="172"
%>

  事实上客户机上的Cookie字典是以字符串的形式存在:

info=Myname=jeff&Gender=male&Myheight=172

  如果用户没有指定“子键”名而直接引用Cookies变量,将会返回一个包含所有的“子键”名及值的字符串。例如上面这个例子包含三个“子键”:"Myname"、"Gender"和"Myheight",当用户没有指定其“子键”而直接通过Request.Cookies("info")来引用时,则会得到下列字符串:

info=Myname=jeff&Gender=male&Myheight=172

  如果要把Cookie中读取的所有数据,可以用下面的代码得到:

<%
For each cookie in Request.Cookies
if Not cookie.HasKeys then
Response.write cookie & "=" & Request.Cookies(cookie)
Else
for each key in Request.Cookies(cookie)
Response.write cookie&"("&key&")"&"="& Request.Cookies(cookie)(key)
next
end if
next
%>

  或者:

<%
'Declare counter variables
Dim Cookie, Subkey
'Display the entire cookie collection.
For Each Cookie in Request.Cookies
Response.Write Cookie
If Request.Cookies(Cookie).HasKeys Then
'Display the subkeys
For Each Subkey in Request.Cookies(Cookie)
Response.Write Subkey & "=" & Request.Cookies(Cookie)(Subkey) & "<BR>"
Next
Else
Response.Write ":No subkeys in this cookie<BR>"
End If
Next
%>