首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机网络
   ASP 3.0高级编程(三)      ★★★ 【字体: 】  
ASP 3.0高级编程(三)
收集整理:佚名    来源:本站整理  时间:2009-01-10 10:10:06   点击数:[]    

是从窗体的HTML控件中直接得到的。QueryString集合包括了两个名为chapter和sample的值,如下图所示:

为在请求中创建这两个值,将一个字符串附在窗体的ACTION属性的URL上,这是可以接受的。工作方式与附在一个元素的HREF属性上相类似。查询字符的值出现在QueryString集合中,且被POST的窗体控件值出现在Form集合中。


为防止非IE类的浏览器出现错误,必须将查询字符串中的空格用加号“+”来代替,读者将在第4章的Server对象的URLEncode方法中看到更多这种情况。
2) 创建客户端的cookie
为了确保至少有些值出现在Request.Cookies集合中,增加一些客户端脚本代码到原始的页面request_form.asp。将创建名称为VisitCount的多值cookie。另一个cookie是由另一个页面创建的,且已经存在于浏览器中。如下图所示,读者可以看到另外的cookie。

这是一段窗体被装载时设置文档对象的cookies属性的客户端代码:

另外,必须将内容进行编码,以便它能被正确地传送到服务器(同样的规则也适用于将查询字符串附到URL上)。在第4章中,讨论Server对象的URLEncode方法时,读者将了解到更多细节。
2、查看Response对象的成员
回到Chapter02实例的最初的Default.asp页面,这次选择“Using the Response Object”链接,这个页面显示的是Response对象的集合和属性的内容,且提供到所有Response对象方法的链接。
下图是使用浏览器Netsape Communicator 4.61的屏幕,用来证明使用的是纯服务器端和跨平台兼容技术。需要注意的是Cookies集合是为Response对象而建立的,仅显示cookie的名称而不显示其值。浏览该页时,可能得不到cookie或得到与这个页面不同的cookie。
(由于豆豆没有安装Netsape Communicator 4.61,仍用IE5.5显示,并无什么区别)

各种Response属性说明了将要用来创建HTTP报头的一些信息。HTTP报头页面的其他部分(HTML和文本内容)被发往到客户端。这些属性中的一些以及所有的Response对象的方法均有链接,允许读者打开另一个页面来显示其使用情况。我们稍后再回到这些页面。
页面中的属性是通过读取相应的属性并插入到页面中创建的。由于这些是动态链接,通过
元素来选择。
Response.CacheControl
= <% = Resposne.CacheControl %>

链接到每个方法是通过链接元素,页面中唯一复杂的部分是Response.Cookies集合。通过只能访问cookie,读取Request.Cookies集合中的值。当访问Response.Cookie集合时,必须在发送任何输出到客户端之前结束对它的所有引用。因此在页面的上部,通过遍历集合创建页面的HTML放在一个局部字符串变量中。
StrCookies = “”
‘We can only read the key names and not the values because
‘the Response.Cookies collection is ‘write only’
For Each objItem In Response.Cookies
If Response.Cookies(objItem).HasKeys Then
‘Use another For Each to iterate all subkeys
For Each objItemKey in Response.Cookies(objItem)
StrCookies = strCookies & objItem & “(“ &objItemKey & “)

Next
Else
‘print out the cookie as normal
strCookies = strCookies & objItem & “

End If
Next
然后在页面的适当点上插入结果。

The Response.Cookies Collection

Response.Cookies
is a write-only collection so the values cannot be displayed


<% = strCookies %>

ASP中的cookie的使用
在前面所看到页面中,一些集合、属性和方法已经链接到其他的页面,用来显示Request和Response对象的各个特性细节,我们将在本章的其余的部分研究这些内容,我们将学习那些提供给ASP代码使用的集合、方法和属性的各种技术。
在本章前面已经看到了如何使用Request.Cookies和Response.Cookies集合来创建和阅读cookie,点击上面两个页面中的任一个的“Cookies”链接时,这个页面包含一些设置了三个cookie的值的ASP代码,且在页面上显示被执行的代码,如下图所示:

点击“Show Cookies”的链接时,cookie的内容就显示出来了。这是通过遍历Request.Cookies集合而得到的,这与在上一页所用的方式完全相同,如下图所示:

这个屏幕图显示的是运行前面看到的设置cookie值的代码的结果。可能会看到其他已经存贮在计算机系统里的cookie。然而,假如现在关闭浏览器然后重新打开浏览器,然后运行显示cookie的页面,除了TimedCookie外,所有的cookie都不见了,这是由于只有这个TimedCookie具有有效期的设置,其他的在浏览器关闭时,自动消失了。
1) cookie中存储用户的细节情况
可以使用cookie来存储这两类值:当浏览器关闭时我们不想保存的值(例如用户的注册信息)以及在用户访问站点时要保留的值。在每种情况下cookie的值对于来自用户浏览器的每个页面请求的ASP都是可用的。
然而,需要记住的是,cookie只有在对Cookie中的虚拟路径(path)内的页面发出请求时,才会发往服务器。缺省时,假如path的值在cookie中没有设置,则其值为创建cookie的页面的虚拟路径。为使一个cookie发往一个站点的所有页面,需要使用path=“/”。
这里是个实例,从自定义的Login页面中,将用户的注册信息存贮在一个cookie中,由于没有应用有效期,cookie值仅在关闭这个浏览器这前保留:
...
Request.Cookies(“User”)(“UID”) = “<% = Request(“UserName”) %>”
Request.Cookies(“User”)(“PWD”) = “<% = Request(“Password”) %>”
Request.Cookies(“User”).Path = “/adminstuff” ‘Only applies to admin pages
...
现在,在用户从adminstuff目录或其子目录请求的每个页面中,都可以找到这个cookie。假如它不存在,可以将用户重定向到注册页面:
If (Request.Cookies(“User”)(“UID”) <> “alexhomer”) _
Or (Request.Cookies(“User”)(“PWD”) <> “secret”) Then
Response.Redirect “login.asp?UserName=” & Request.Cookies(“User”)(“UID”)
End If
...
由于把cookie中的用户名放在Response.Redirect的URL查询字符串中,假如在口令输入时出现错误且希望用户不必重新键入用户名,可以在login.asp页面中使用它:

VALUE=”<% = Request.QueryString(“UserName”) %>”>




2) 修改现有的cookie
可以使用ASP修改现有的cookie,但不能只修改cookie中的一个值。当更新一个在Response.Cookies集合中的Cookie时,现有的值将丢失。我们可以用如下代码创建一个cookie,可以使用:
Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart
Response.Cookies(“VisitCount”)(“LastDate”) = Now
Response.Cookies(“VisitCount”)(“Visits”) = CStr(intVisits)
Response.Cookies(“VisitCount”).Path = “/” ‘Apply to entire site
Response.Cookies(“VisitCount”).Expires = DateAdd(“m”,3,Now)
假如想要更新Visits和LastDate的值,必须先不需改变的所有值,然后重写整个的cookie:
datDtart = Response.Cookies(“VisitCount”)(“StartDate”)
intVisits = Response.Cookies(“VisitCount”)(“Visits”)
Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart
Response.Cookies(“VisitCount”)(“LastDate”) = Now
Response.Cookies(“VisitCount”)(“Visits”) = Cstr(intVisits)
Response.Cookies(“VisitCount”).Path = “/”
Response.Cookies(“VisitCount”).Expires = DateADD(“m”,3,Now + 1)且对于几乎所有的其他Response方法和属性,应该在写入任何内容(即打开标记或任何文本或其他的HTML)到响应之前完成这个工作。


上一页  [1] [2] [3] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:ASP 3.0高级编程(四)

  • 下一篇文章:计算机语言教学探讨
  • 返回上一页】【打 印】【关闭窗口
    中查找“ASP 3.0高级编程(三)”更多相关内容 5VAR论文频道
    中查找“ASP 3.0高级编程(三)”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››Internet时代的网络出版
  • ››惩治网络犯罪推进电子商务发展
  • ››Win2003服务器RPL远程启动服务的安...
  • ››网络营销与个人隐私保护
  • ››网络与未来出版
  • ››强化网站项目管理的需求分析
  • ››试谈计算机网络安全关键问题的分析...
  • ››浅论气象业务建设中网络故障与及时...
  • ››浅谈人防指挥计算机网络的安全性
  • ››计算机网络故障管理智能化研究
  • ››ASP制作学生档案管理系统
  • ››ASP技术访问WEB数据库
  • ››ASP.Net中程序构架与程序代码的分离...
  • ››ASP.NET的网站新闻管理系统设计与实...
  • ››ASP网页设计小技巧
  • ››ASP技术在交互式网页设计中的运用毕...
  • ››ASP 3.0高级编程(三)
  • ››ASP 3.0高级编程(四)
  • ››ASP 3.0高级编程(一)
  • ››ASP 3.0高级编程(二)
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .