仓酷云

标题: ASP网页编程之ASP:Cookie利用指南 [打印本页]

作者: 灵魂腐蚀    时间: 2015-2-3 23:33
标题: ASP网页编程之ASP:Cookie利用指南
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。   实践上,在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具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业; 通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。
作者: 愤怒的大鸟    时间: 2015-2-4 02:08
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 深爱那片海    时间: 2015-2-4 13:28
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 金色的骷髅    时间: 2015-2-7 12:05
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: 灵魂腐蚀    时间: 2015-2-21 20:41
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
作者: 老尸    时间: 2015-2-22 15:58
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 只想知道    时间: 2015-3-7 00:47
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 莫相离    时间: 2015-3-10 16:01
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 仓酷云    时间: 2015-3-14 16:39
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: admin    时间: 2015-3-20 20:50
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
作者: 小妖女    时间: 2015-3-25 12:23
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 冷月葬花魂    时间: 2015-4-2 16:37
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
作者: 再现理想    时间: 2015-4-7 13:12
那么,ASP.Net有哪些改进呢?
作者: 爱飞    时间: 2015-4-9 13:06
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 小魔女    时间: 2015-4-10 20:24
那么,ASP.Net有哪些改进呢?
作者: 不帅    时间: 2015-4-15 07:54
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 分手快乐    时间: 2015-4-22 04:40
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 海妖    时间: 2015-4-25 10:56
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 谁可相欹    时间: 2015-4-29 04:34
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者: 若相依    时间: 2015-5-1 15:43
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2