Request.Cookies和Response.Cookies分析
ASP.NET 


       Request.Cookies的基本语法和用法。并且通过示例分析了Request.Cookies的使用过程。 
　　Request.Cookies方法可以检索Cookies 集合中的值,Cookies 集合允许用户检索在 HTTP 请求中发送的 cookie 的值。

　　Request.Cookies使用语法：Request.Cookies(cookie)[(key)|.attribute]

　　Cookies是一种标记，由WEB服务器嵌入到用户浏览器中，以便识别用户，下次同一浏览器请求网页时，将发送从WEB服务器收到的Cookies。

　　利用Cookies可存储与用户相关的信息。利用Response和Request对象的Cookies集合，可实现设置或获得Cookies的值。

　　利用Response对象的Cookies集合，设置Cookies的用法为：

　　Response.Cookies(CookieName)[(Key)|.Attribute]=value

参数说明：
（1）CookieName：代表表示Cookie的名字，由用户自行命名。
（2）Key：是Cookie指定关键字。通过给Cookie指定关键字，可使Cookie拥有多个值，这种Cookie称为带索引的Cookie。
（3）Attribute：此参数表示Cookies集合对象的属性，其最常用的属性主要是Expires（用于设置Cookies的过期日期）、Domain（用于设置Cookies的有效作用域名范围）。

比如：若要设置一个名为VisitNum的Cookie，用以储存该用户访问本网站的次数，并初始化其值为1，则实现代码为：

<%Response.Cookies("VisitNum")=1%>

　　该语句必须位于网页的<HTML>标记之前。若指定的Cookies己经存在，则将重写Cookies的值，若不存在，建创建该Cookies。
　　利用该方法所设置的Cookies仅在当前会话中有效，若要在用户已经终止或重新启动浏览器之后仍有效，就必须强制浏览器将Cookie保存到用户的硬盘上，为此，可以通过设置Cookies集合对象的Expires属性为此后的某一段时间来实现。

例如，若要设置名为VisitNum的Cookies在5天后过期，则设置方法为：

<%
Response.Cookies("VisitNum")=1
Response.Cookies("VisitNum").Expires=DateAdd("d",5,Date)
%>

例如：使用Cookie保存网友访问网站的次数和最近一次访问的日期和时间，并要求该Cookie在7天后过期。
　　　要保存的信息有2个，而且这2个信息有一定的联系，因此，可用带索引的Cookies来实现。另外，也可以用两个不同的Cookie来分别保存。
　　为了实现累加访问次数，可利用Request对象的Cookie集合对象来获得Cookie的值，递增后，再赋回给该Cookie。Request对Cookie操作的方法与Response相似，只不过Request是用来获取Cookies的值，而Response是用来设置Cookies的值。

（1）、带索引的Cookies的实现方法为:
<%
if Request.Cookies("UserVisit")("num")="" then   '若该Cookie不存在
    Response.Cookies("UserVisit")("num")=1        '则创建该Cookie并赋初值
else
    Response.Cookies("UserVisit")("num")=Request.Cookies("UserVisit")("num")+1
end if
Response.Cookies("UserVisit")("LastVisit")=now
Response.Cookies("UserVisit").Expires=DateAdd("ww",1,Date)
%>

　　为了测试是否正确设置了Cookie,可用以下代码通过输出相应Cookie的值来实现:

<%="访问人数为:"&Request.Cookies("UserVisit")("num") &"<BR>最近访问时间为:" & Request.Cookies("UserVisit")("LastVisit")%>

（2）、用两个不同Cookie的实现方法(不带索引):

<%
Response.Cookies("VisitNum")=1
Resposne.Cookies("VisitNum").Expires=DateAdd("ww",1,Date)
Response.Cookies("LastVisit")=now
Response.Cookies("LastVisit").Expires=DateAdd("ww",1,Date)
%>

 

总结：

Response.Cookie写入COOKIE 
Request.Cookie读取COOKIE
