快捷搜索:

ASP:Cookie使用指南

实际上,在web开拓中,cookie仅仅是一个文本文件,当用户造访站点时,它就被存储在用户应用的谋略机上,此中,保存了一些信息,当用户日后再次造访这个站点时,web可以将这些信息提掏出来。

只管现在听起来cookie没有什么冲感民心的,但实际上使用它,你能实现许多故意义的功能!比如说:你可以在站点上放置

一个调盘考答表,扣问造访者最爱好的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存造访者的登录密码,这

样,当造访者再次造访这个站点时,不用再输入密码进行登录。

当然,cookie也有一些不够。首先,因为使用cookie的功能可以编程实现一些不良妄图,以是大年夜多半的浏览器中都有安然设定,此中可以设置是否容许或者吸收cookie,是以这就不能包管随时能应用cookie。再者,造访者可能故意或者无意地删除cookie。当造访者的机械碰到“蓝屏”逝世机时,或者从新款式化硬盘、安装系统后,原本保存的cookie将整个损掉。着末一点,有一些最初始的浏览器并不能支持cookie。

使用cooklie能做什么?

有2种应用cookie的基础要领:

1、将cookie写入造访者的谋略机(应用 RESPONSE 敕令)

2、从造访者的谋略机中取回cookie(应用 REQUEST 敕令)

创建cookie的基础语法

Response.Cookies("CookieName")=value

履行下面的代码将会在造访者的谋略机中创建一个cookie,名字=VisitorName,值=Ken

Response.Cookies("VisitorName")="Ken"

履行下面的代码将会在造访者的谋略机中创建一个cookie,名字=VisitorName,值=表单中UserName的值

Response.Cookies("VisitorName")=Request.Form("UserName")

读取cookie的基础语法

Request.Cookies("CookieName")

可以将Request值算作一个变量看待,履行下面的代码,将取回名字为KensCookie的cookie值,并存入变量MyVar:

MyVar=Request.Cookies("KensCookie")

履行下面的代码,将断命名字为KensCookie的cookie值是否为“Yes”:

If Request.Cookies("KensCookie")="Yes" then...

功能富厚的cookie

你可以扩展上面的代码成为Cookie子关键值(CookieSubName),代码如下:

Response.Cookies("VisitorName")("FirstName")="Ken"

Response.Cookies("VisitorName")("LastName")="Baumbach"

解说例子前,着末评论争论2个观点:敕令约定和应用到期光阴。

命名约定

同其他变量的命名一样,相宜地、独特地命名cookie,有利于在法度榜样中前后连贯地应用它。你可以应用下面的1个或者2个

cookie属性进行cookie变量的命名:

域属性(Domain):域属性注解cookie由哪个网站孕育发生或者读取,默认环境下,cookie的域属性设置为孕育发生它的网站,但你

也可以根据必要改变它。相关代码如下:Response.Cookies("CookieName").Domain = "www.mydomain.com"

路径属性(Path):路径属性可以实现更多的安然要求,经由过程设置网站上正确的路径,就能限定cookie的应用范围。例如:

Response.Cookies("CookieName").Path = "/maindir/subdir/path"

应用到期光阴

平日环境下,当浏览器关闭时,一个cookie就不存在了。然则在许多时刻,比如下面将要评论争论的web站点例子,我们盼望能更长光阴地在造访者的谋略机上保存cookie。很幸运,有这样的实现措施。下面的代码,就可以设置cookie的应用到期光阴为2010年1月1日:

Response.Cookies("CookieName").Expires=#January 01, 2010#

履行下面的代码,将设定cookie的过韶光阴为“cookie的创建光阴+365日”:

Response.Cookies("CookieName")=Date+365

应用cookie的实际例子

现在开始评论争论实际的例子。假设:你想做一个查询造访,每小我初次造访时必要填写好信息,然则当日后再造访时,就不必要再那么做。使用cookie,就可以异常完满地办理这个问题,而大年夜可不必用到数据库。

好,下面开始从头评论争论上面的代码。

首先,初始设置页面,并读取名字为KensSurvey的cookie值:

例子2

这里有别的一个简单的例子:当造访者第1次浏览某个站点时,向他们显示迎接信息。代码如下:

"" or RequestLeaveMeAlone ""  then

Response.Cookies("MySiteVisitorName") = RequestName

Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#

Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone

Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#

End if

VisitorName = request.cookies("MySiteVisitorName")

LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")

If VisitorName ="" and LeaveMeAlone ="" then

% >

Let's be friends

What's your name (leave blank and hit the Submit button if you don't want us to know)?

"" then

Response.write "Hi, " & VisitorName & "! I hope you are having a great day!"

End if

'rest of the page

% >

好,现在来看看上面的代码实现履行了什么。首先,设置页面。然后,反省表单变量(在同一个页面中)。假如表单变量存在,就创建cookie,并设置到期光阴。

%@ LANGUAGE="VBSCRIPT" % >

"" or RequestLeaveMeAlone ""  then

Response.Cookies("MySiteVisitorName") = RequestName

Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#

Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone

Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#

End if

接着,读取cookie:

VisitorName = request.cookies("MySiteVisitorName")

LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")

假如cookie在造访者的谋略机上不存在,就创建一个表单,扣问相关信息:

If VisitorName ="" and LeaveMeAlone ="" then

% >

Let's be friends

What's your name (leave blank and hit the Submit button if you don't want us to know)?

"" then

Response.write "Hi, " & VisitorName & "! I hope you are

having a great day!"

End if

'rest of the page

% >

只管上面的这个例子很简单,但可以从中扩展许多富有创造力的利用。你可以在表单中加入许多功能,以便定制化web站点。

你还可以让造访者定制网站的色彩、字体,以至于其他web元素。有可能的话,你可以扣问造访者的生日,当造访者在那一天来访

时,你就可以显示“生日快乐”的信息给他。

如你所见,cookie的扩展性是无穷的,这篇文章仅仅是抛砖引玉。

您可能还会对下面的文章感兴趣: