Cookies是服务器端和客户端传递的http头部信息,这些信息被保存成文本格式的小文件,存贮在客户端的浏览器或硬盘上,客户可以用浏览器的工具对Cookie进行设置,以便决定是否使用它。
Cookies的存在形式有两种,一种是只在浏览器打开时存在,浏览器关闭后就消失了,这种方式的叫会话Cookies,另一种是把Cookies写入客户的硬盘中叫永久性Cookies当然这种永久是相对的,如果客户使用浏览器Internet选项中的工具删除它,或者硬盘被格式化了,保存的Cookies就没了,要应用Cookies首先是设置一个Cookies并把它写入客户的硬盘中。
一、设置Cookies
语法;
Response.Cookies("Cookies_name")[("key")|.property]=value |
参数:
Cookie_name 为Cookies变量的名称
key 为可选参数,用字典把key翻译成中文则为"关键字",如果指定了关键字,则Cookies就是一个集合,并将value的值赋给这个关键字;
value为赋给Cookies_name的值
property为key的属性,指定Cookies自身的某些信息;
property属性的取值:
1 Expires 指定 cookies 的过期时间
2 Domain 指定cookies 发送到的该网域,默认情况下,cookies设置为产生它的网站;
3 Path 指定cookies送到的路径
二、访问Cookies
语法:
Request.Cookies("Cookie_name")[("key")|.property]
示例1
查看自己电脑中的Cookies,对于windwos xp参考下面路径找到Cookies文件夹,打开后我们就会看到很多Cookies文本文件,观察完毕后使用浏览器的工具删除之,然后我们去登陆任何一个论坛,在去看看Cookies文件,是不是多了一些文本文件;
C:\Documents and Settings\电脑用户名\Cookies |
示例 sl8-1.asp
<% '写入Cookies Response.Cookies("user_name")="longka" Response.Cookies("user_name").expires=#2006-5-1# %> <html> <head><title>asp简单程序</title></head> <body> <p>写入Cookies</p> <p></p> </body> </html> |
示例解读:
1、第一行设置了一个变量名为user_name的Cookies,并且给他赋值为字符串longka
2、第二行使用属性Expires指定了Cookies的有效期,如果我们不指定有效期则这个Cookies就不会写入客户的硬盘,此时由第一句创建的Cookies只是临时保存在客户的浏览器中,当浏览器关闭后,该Cookies就消失了,叫做会话Cookies
3、Response.Cookies方法必须用在所有html元素的最前面,如果你想在文件的任意地方使用它,则必须在文件的开始处加<% Response.Buffer=true %>,首先把数据先保存到缓冲区,这和引导客户浏览器到另一个url的Response.redirect对象方法是类似的;
4、在自己的电脑中看看我们写入的Cookies文件
示例 sl8-2.asp
<html> <head><title>asp简单程序</title></head> <body> 取回Cookies<br> <% '取回Cookies dim a a=request.cookies("user_name") response.write("你写入的Cookies为:"&a) %> </body> </html> |
示例解读:
使用request.cookies方法,可以取回使用Response.Cookies方法写入客户硬盘中的信息,request.cookies方法可以放在html的<body>锻的任何位置;
示例 sl8-3-1.asp
<% Response.Buffer=true %> <html> <head><title>asp简单程序</title></head> <body> 写入Cookies <% '写入Cookies Response.Cookies("my_name")="aa" Response.Cookies("you_name")="bb" Response.Cookies("my_name").expires=#2020-5-1# Response.Cookies("you_name").expires=#2020-5-1# %> </body> </html> |
示例 sl8-3-2.asp
<html> <head><title>asp简单程序</title></head> <body> 取回Cookies<br> <% '取回Cookies dim a b a=request.cookies("my_name") b=request.cookies("you_name") response.write("你写入的Cookies为:"&a) response.write("你写入的Cookies为:"&b) %> </body> </html> |
示例解读;
示例sl8-3对两个cookies进行了写入和取回操作,经测试结果虽然是可行的,但是在asp中通常不这样进行操作,而是使用关键字设置和取回多个cookies,从下面的示例中我们可以看到要方便许多,特别是取回多个cookies时;
示例 sl8-4-1.asp
<% Response.Buffer=true %> <html> <head><title>asp简单程序</title></head> <body> 带关键字的Cookies写入方法 <% '带关键字的Cookies Response.Cookies("Cookname")("Cookname1")="aa1" Response.Cookies("Cookname")("Cookname2")="aa2" Response.Cookies("Cookname")("Cookname3")="aa3" Response.Cookies("Cookname").expires=#2008-5-1# %> </body> </html> |
示例 sl8-4-2.asp
<html> <head><title>asp简单程序</title></head> <body> 返回带关键字的Cookies<br> <% dim Cookname Cookname=request.cookies("Cookname") response.write("你写入的Cookies为:"&Cookname) %> </body> </html> |
示例 sl8-5.asp
<% dim num num=request.cookies("ta_nam") if num > "0" then num=num+1 Response.write("你现在是第"&num&"次访问这里了") else Response.write("欢迎你首次访问这里") num=1 end if response.cookies("ta_nam")=num response.cookies("ta_nam").expires=#2020-1-1# %> |
示例解读:
定义一个变量num用来保存获取的名为ta_nam的cookies,当你首次访问时ta_nam尚未写入硬盘,num为空值,所以执行else后面的语句输出-欢迎你首次访问这里,输出完毕后继续向下执行语句就会把response.cookies方法的ta_nam变量,写到客户硬盘中了,以后再次访问,num总是会大于0,故执行num=num+1,计算出客户访问的次数;