实际上,在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,就可以非常圆满地解决这个问题,而大可不必用到数据库。 
 
< %@ LANGUAGE="VBSCRIPT" % > 
< %  
Survey=Request.Cookies("KensSurvey") 
If Survey ="" then 
Response.Cookies("KensSurvey")="x" 
Response.Cookies("KensSurvey").Expires=#January 01, 2010# 
Response.Redirect "survey.asp" 
Else 
'rest of the page 
End if 
% > 
   好,下面开始从头讨论上面的代码。 
 
   首先,初始设置页面,并读取名字为KensSurvey的cookie值: 
 
 
< %@ LANGUAGE="VBSCRIPT" % > 
< %  
Survey=Request.Cookies("KensSurvey") 
   然后,判断是否已经存在cookie值: 
 
If Survey ="" then 
   如果不存在, 就创建并设置cookie,并转到页面survey.asp。 当下一次访问时,因为存在cookie值,就不会再转到 
survey.asp 页面。 
 
Response.Cookies("KensSurvey")="x" 
Response.Cookies("KensSurvey").Expires=#January 01, 2010# 
Response.Redirect "survey.asp" 
   如果cookie已经存在,那么访问者将执行页面中剩余的代码: 
 
'rest of the page 
 
End if 
% > 
   例子2  
 
   这里有另外一个简单的例子:当访问者第1次浏览某个站点时,向他们显示欢迎信息。代码如下: 
 
< %@ LANGUAGE="VBSCRIPT" % > 
< %  
RequestName = Request.Form("Name") 
RequestLeaveMeAlone = Request.Form("LeaveMeAlone") 
If RequestName < >"" 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 
% > 
< HTML > < HEAD > < /HEAD > 
< body bgcolor="#ccffff" text="black" link="navy" vlink="purple" > 
< DIV ALIGN="CENTER" > 
< form action="index.asp" method="POST" > 
< H2 >Let's be friends< /H2 > 
What's your name (leave blank and hit the Submit button if you don't want us to  
know)?  
< input type="text" name="name" >< BR >< BR > 
< input type="hidden" name="LeaveMeAlone" value="x" > 
< input type="submit" value="Submit" > 
< /FORM > 
< /DIV > 
< /BODY > 
< % 
End if 
If VisitorName < > "" then 
Response.write "Hi, " & VisitorName & "! I hope you are having a great day!" 
End if 
'rest of the page 
% > 
   好,现在来看看上面的代码实现执行了什么。首先,设置页面。然后,检查表单变量(在同一个页面中)。如果表单变量存 
在,就创建cookie,并设置到期时间。 
 
< %@ LANGUAGE="VBSCRIPT" % > 
< %  
RequestName = Request.Form("Name") 
RequestLeaveMeAlone = Request.Form("LeaveMeAlone") 
If RequestName < >"" 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 
% > 
< HTML > 
< HEAD > 
< /HEAD > 
< body bgcolor="#ccffff" text="black" link="navy" vlink="purple" > 
< DIV ALIGN="CENTER" > 
< form action="index.asp" method="POST" > 
< H2 >Let's be friends< /H2 > 
What's your name (leave blank and hit the Submit button if you don't want us to  
know)?  
< input type="text" name="name" >< br >< br > 
< input type="hidden" name="LeaveMeAlone" value="x" > 
< input type="submit" value="Submit" > 
< /FORM > 
< /DIV > 
< /BODY > 
< % 
End if 
   如果cookie已经存在,并且用户名字存在,就显示给访问者一个欢迎界面,然后执行其余的代码。 
 
If VisitorName < > "" then 
Response.write "Hi, " & VisitorName & "! I hope you are having a great day!" 
End if 
'rest of the page 
% > 
   尽管上面的这个例子很简单,但可以从中扩展许多富有创造力的应用。你可以在表单中加入许多功能,以便定制化web站点。 
你还可以让访问者定制网站的色彩、字体,以至于其他web元素。有可能的话,你可以询问访问者的生日,当访问者在那一天来访 
时,你就可以显示“生日快乐”的信息给他。 
 
   如你所见,cookie的扩展性是无穷的,这篇文章仅仅是抛砖引玉。

Asp:Cookies应用指南的更多相关文章

  1. asp:cookies的属性

    Expires – 过期时间.指定cookie的生命期.具体是值是过期日期.如果想让cookie的存在期限超过当前浏览器会话时间,就必须使用这个属性.当过了到期日期时,浏览器就可以删除cookie文件 ...

  2. ASP.NETZERO 开发者指南-目录篇

    前面的话 此教程适用于 ASP.NET MVC 5.x & Angularjs 1.x  的ABP框架(收费需要授权) 所以有能力的朋友还是希望你们多多支持 土牛.购买链接:https://w ...

  3. asp.net学习指南

    个人总结了一些不错的基础视频教程 视频链接地址(猛戳这里)

  4. ASP开发入门+实战电子书共50本 —下载目录

    小弟为大家整理50个ASP电子书籍,有入门,也有实战电子书,做成了一个下载目录,欢迎大家下载. 资源名称 资源地址 ASP.NET开发实战1200例_第I卷 http://down.51cto.com ...

  5. ASP.NET MVC5入门1之项目创建

    本博文参考ASP.NET MVC5入门指南,下载链接: ASP.NET_MVC5_入门指南 1.创建项目 文件 --> 新建 --> 项目 Visual C# --> Web --& ...

  6. Windows 服务器部署 asp.net core

    踩坑日记与 Windows 服务器部署 asp.net core 指南. 准备 操作系统:Windows Server 2008 R2 或更高版本 文件: Microsoft Visual C++ 2 ...

  7. xss和sql注入原理学习

    8.4 Web跨站脚本攻击 8.4.1  跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...

  8. C#,.Net 学习资源

    原文:http://blog.csdn.net/chinacsharper/article/details/17514923一.网站1.http://msdn.microsoft.com/zh-CN/ ...

  9. C# 学习电子书资料分享mobi epub等格式

    .NET之美:.NET关键技术深入解析 作者: 张子阳 出版社:机械工业出版社 大小:20.29MB 出版时间:14-01-01 格式:mobi ASP.NET 4权威指南 作者: 马伟 出版社: 大 ...

随机推荐

  1. RTL-SDR基础环境安装

    安装 cmake and libusb apt-get install cmake apt-get -dev 安装 RTL-SDR sudo apt-get install rtl-sdr kali已 ...

  2. git-bash下composer命令无法使用的问题

    git-bash下composer命令无法使用的问题 已经安装composer,写好composer.bat,并且设置好了path,在cmd下可以正常使用,但是在git-bash里面不行,显示如下提示 ...

  3. HDU 1695 GCD#容斥原理

    http://acm.hdu.edu.cn/showproblem.php?pid=1695 翻译题目:给五个数a,b,c,d,k,其中恒a=c=1,x∈[a,b],y∈[c,d],求有多少组(x,y ...

  4. 二维小波包重构wprec2\wprcoef

    clc,clear all,close all; load woman; t=wpdec2(X,2,'haar');%小波包2层分解 r_X=wprec2(t);%重构小波包 r_X10=wprcoe ...

  5. luci-bwc

    文件位于:   ../feeds/luci/modules/admin-full/src/luci-bwc.c 功能: Very simple bandwidth collector cache fo ...

  6. strings

    3.1.1.1 计算列表中的字符串数目 使用Count属性可计算列表中的字符串数目.Count是只读属性,用以指示列表中字符串列表数目.因为字符串列表是以零开始索引,因而Count比列表的最大索引数大 ...

  7. jQuery 事件 - bind() 方法

    定义和用法 bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数. 实例1(一个事件) 记得把js引用地址换掉 当点击鼠标时,隐藏或显示 p 元素: <html&g ...

  8. 域名、网站名、url的定义

    网址:http://jingyan.baidu.com/article/2c8c281df0afd00008252aa7.html

  9. HTML+CSS D09 定位

    1.定位 (1)相对定位 如果对一个元素进行相对定位,它将出现在它所在的位置上.然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动. #box_relative {  positi ...

  10. 配置php开发环境

    安装apache 1 loadModule 加载php的模块2 addType 告诉apache凡是php结尾的文件都交给php模块执行3 PHPIniDir 告诉apache php.ini的文件在 ...