飘飘悠悠 发表于 2015-1-16 22:08:40

ASP编程:ASP教程:进修ASP使用Cookies的技能

缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。甚么是Cookie?Cookie实际上是一个标签,常常大概听到的中文翻译:小舔饼。当你会见一个必要独一标识你的站址的WEB站点时,它会在你的硬盘上留下一个标志,下一次你会见统一个站点时,站点的页面会查找这个标志。
每一个WEB站点都有本人的标志,标志的内容能够随时读取,但只能由该站点的页面完成。每一个站点的Cookie与其他一切站点的Cookie存在统一文件夹中的分歧文件内(你能够在win98的Windows目次下的Cookie文件夹中找到它们,而win2k则在DocumentsandSettings文件夹下特定用户的cookies文件夹中)。
一个Cookie就是一个独一标识客户的标志,Cookie能够包括在一个对话期或几个对话期之间某个WEB站点的一切页面共享的信息,利用Cookie还能够在页面之间互换信息。这项功效常常被利用在请求认证客户暗码和电子通告板、WEB谈天室等ASP程序中。
只管如今听起来cookie没有甚么冲动民气的,但实践上使用它,你能完成很多成心义的功效!好比说:你能够在站点上安排一个查询拜访问答表,扣问会见者最喜好的色彩和字体,然后依据这些定制用户的web界面。而且,你还能够保留会见者的登录暗码,如许,当会见者再次会见这个站点时,不必再输出暗码举行登录。
固然,cookie也有一些不敷。起首,因为使用cookie的功效能够编程完成一些不良妄图,以是年夜多半的扫瞄器中都有平安设定,个中能够设置是不是同意大概承受cookie(IE扫瞄器中“工具”--“Internet选项...”--“平安”--“自界说级别”--“Cookie的利用”;Netscape扫瞄器中“工具”--“Cookie办理器”--“办理储存的Cookie”便可),因而这就不克不及包管随时能利用cookie。再者,会见者大概成心大概偶然地删除cookie。当会见者的呆板碰到“蓝屏”逝世机时,大概从头格局化硬盘、安装体系后,本来保留的cookie将全体丧失。最初一点,有一些最后始的扫瞄器其实不能撑持cookie。
◆如何使用cooklie?
有2种利用cookie的基础体例:
1、将cookie写进会见者的盘算机(利用Response命令)
2、从会见者的盘算机中取回cookie(利用Request命令)
◆创立cookie的基础语法:Response.Cookies(cookie)[(key)|.attribute]=value
这里的cookie是指定cookie的称号。
而假如指定了key,则该cookie就是一个字典。
(测试一cookie是不是为一个字典可用前面代码显现布尔值:<%=Request.Cookies("cookiename").HasKeys%>。为true是字典,false则不是。)
Attribute指定cookie本身的有关信息。Attribute参数能够是以下之一:
①Domain若被指定,则cookie将被发送到对该域的哀求中往。域属性标明cookie由哪一个网站发生大概读取,默许情形下,cookie的域属性设置为发生它的网站,但你也能够依据必要改动它。(Response.Cookies("CookieName").Domain="www.webjx.com")
②Path为一起径属性,该属性能够完成更多的平安请求,经由过程设置网站上准确的路径,就可以限定cookie的利用局限。假如未设置该属性,则利用使用程序的路径。(Response.Cookies("CookieName").Path="/maindir/subdir/path")
③Expires指定cookie的过时日期。为了在会话停止后将cookie存储在客户端磁盘上,或在很多时分,我们但愿能更长工夫地在会见者的盘算机上保留cookie。必需设置该日期。若此项属性的设置未凌驾以后日期,则在义务停止后cookie将到期。
前面的代码,就能够设置cookie的利用到期工夫为“2010年1月1日”:Response.Cookies("CookieName").Expires=#January01,2010#
前面的代码,将设定cookie的过时工夫为“cookie的创立工夫+365天”:Response.Cookies("CookieName").Expires=Date+365
但最好不要任意写Response.Cookies("CookieName").Expires=Date,如许页面之间的挪用时价会为空。
实行上面的代码将会在会见者的盘算机中创立一个cookie,名字=VisitorName,值=Ken:
Response.Cookies("VisitorName")="Ken"
实行上面的代码将会在会见者的盘算机中创立一个cookie,名字=VisitorName,值=表单中UserName的值
Response.Cookies("VisitorName")=Request.Form("UserName")
你能够扩大上面的代码成为Cookie子关头值(CookieSubName),即cookie字典的天生。代码以下:
Response.Cookies("VisitorName")("FirstName")="Ken"
Response.Cookies("VisitorName")("LastName")="Baumbach"
◆读取cookie的基础语法:Request.Cookies(cookie)[(key)|.attribute]
cookie指定要检索其值的cookie。
key可选参数,用于从cookie字典中检索子关头字的值。
attribe指定cookie本身的有关信息。如:HasKeys只读,指定cookie是不是包括关头字。
假如客户端扫瞄器发送了两个同名的cookie,那末Request.Cookie将前往个中路径布局较深的一个。比方,假如有两个同名的的cookie,但个中一个的路径属性为/www/而另外一个为/www/home/,客户端扫瞄器同时将两个cookie都发送到/www/home/目次中,那末Request.Cookie将只前往第二个cookie。
案例剖析:
◆num.asp(经由过程留在当地磁盘上的cookie纪录一年内会见本站的次数,第一次显现“初次会见”,今后显现“第几回会见”)
以下为援用的内容:
<%
dimnum
num=request.cookies("visitnum")
ifnum>"0"then
num=num+1
Response.write"您已经是第"&num&"次会见本站点了。"
else
Response.write"接待您初次会见本站。"
num=1
endif
response.cookies("visitnum")=num
response.cookies("visitnum").expires=date+365
%>

◆showcookie.asp(从Cookies文件夹中遍历出扫瞄器一切的Cookiename,和相干的字典Cookie的显现(蓝字显现))
以下为援用的内容:
<%
ForeachcookieinRequest.Cookies
ifRequest.cookies(cookie).HasKeys=falsethen
Response.writecookie&"="&Request.Cookies(cookie)
Response.write("<br>")
Else
foreachkeyinRequest.Cookies(cookie)
Response.write("<fontcolor=blue>")
Response.writecookie&".("&key&")"&"="&Request.Cookies(cookie)(key)
Response.write("</font><br>")
next
endif
next
%>
◆check.asp
起首,设置页面。然后,反省表单变量(在统一个页面中)。假如表单变量存在,就创立cookie,并设置到期工夫。
以下为援用的内容:
<%@LANGUAGE="VBSCRIPT"%>
<%
bgcolor=Request.Form("bgcolor")
fgcolor=Request.Form("fgcolor")
pwd=Request.form("pwd")
Ifbgcolor""orfgcolor""then
Response.cookies("check")("bgcolor")=bgcolor
Response.Cookies("check")("fgcolor")=fgcolor
Response.Cookies("check")("pwd")=pwd
Response.Cookies("check").Expires=#may01,2004#
Endif
接着,读取cookie
bgcolor=request.cookies("check")("bgcolor")
fgcolor=request.cookies("check")("fgcolor")
pwd=request.cookies("check")("pwd")
假如cookie在会见者的盘算机上不存在,就创立一个表单,扣问相干信息
Ifbgcolor=""andfgcolor=""andpwd=""then
%>
<HTML>
<HEAD></HEAD>
<body>
<DIVALIGN="CENTER">
<Formaction="check.asp"method="POST">
Bgcolor:<inputtype="text"name="bgcolor"><BR>
Fgcolor:<inputtype="text"name="fgcolor"><BR>
Password:<inputtype="password"name="pwd"><BR>
<inputtype="submit"value="Submit">
</Form>
</DIV>
</BODY>
<%
Endif
假如cookie已存在,而且bgcolor存在,就跳转到color.asp。
Ifbgcolor""then
Response.Redirect"color.asp"
Endif
%>
◆color.asp(显现用户喜好色彩的页面特征)
以下为援用的内容:
<%
bgcolor=request.cookies("check")("bgcolor")
fgcolor=request.cookies("check")("fgcolor")
pwd=request.cookies("check")("pwd")
%>
<%response.write("<bodybgcolor="&bgcolor&"><fontcolor="&fgcolor&">")%>
你的暗码是:
<%response.write(""&pwd&"")%>


asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。

灵魂腐蚀 发表于 2015-1-17 23:39:17

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

柔情似水 发表于 2015-1-21 11:19:38

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

深爱那片海 发表于 2015-1-30 17:01:23

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

简单生活 发表于 2015-2-6 14:16:56

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

活着的死人 发表于 2015-2-16 10:45:40

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

小魔女 发表于 2015-3-5 05:30:02

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

再见西城 发表于 2015-3-11 23:37:44

掌握asp的特性而且一定要知道为什么。

蒙在股里 发表于 2015-3-19 16:18:40

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

再现理想 发表于 2015-3-29 11:35:25

那么,ASP.Net有哪些改进呢?
页: [1]
查看完整版本: ASP编程:ASP教程:进修ASP使用Cookies的技能