Request 对象总共提供了Form、QueryString、Cookies、ServerVariables 及ClientCertificate等数据集合,其所表示的意义见前面介绍。采用下面的语法即可取得某个特定数据集合的一个内容值:
其中数据collection(集合名称)、Property(特定的数据集合属性)与Method(特定的数据集方法)是可以省略的,只要使用Request("变量名称"),同样可以取得该变量的内容值。不过使用这种简洁的写法,一定要注意当不同数据集合中有相同的变量名称时,ASP 会按照QueryString、Form、Cookies、ClientCertificate 及ServerVariables 等数据集合的顺序来返回所想要取得的变量内容。以下将分别说明这些数据集合的各种属性与方法。
1.Form数据集合
Form 数据集合是Request 对象中最常使用的数据集合。Form 数据集合可以取得客户端表单上的各项对象内容值。这些表单的对象都是由HTML 的<FORM>标签所组合而成的,它们包括单行文本(Text)、文本块(TextArea)、复选框(CheckBox)、单选按钮(Radio)、下拉式选择框(Select)或按钮(Button)等,其语法如下:
其中表单对象名称是指定集合要检索的表单元素的名称,索引值是访问某参数中多个值中的一个,它可以是1到Request.Form(parameter).Count之间的任意整数
下面例子将示范如何利用Form数据集合来取得用户在表单中所填写的内容。
例3-2:
Stepl.建立一个HTML 的表单输入程序,其存储文件名称为Inputl.asp,主要的内容包括姓名、性别及电子邮件信箱,其完整的HTML 程序内容如下:
Step2.建立一个处理表单的ASP 程序,其存储文件名称为Outputl.asp。这个ASP 程序将利用Request对象的Form数据集合来取得用户在表单所填写的内容,其完整程序如下:
Step3.运行示例,请通过浏览器运行输入程序Inputl.asp。系统首先会显示一个如图3-2的HTML 输入界面,请输入姓名、性别及电子邮件地址数据,并按下【确定】按钮。此时系统会将所输入的数据提交给Outputl.asp 处理。这里Outputl.asp 只是显示所输入的数据而已,其结果,如图3-3所示:
图3-2 HTML 输入界面
图3-3 Request对象的Form数据集合
这里除了可以直接使用表单对象名称来取得该对象的内容外,还可以利用变量的索引值来取得表单对象的内容,因此下面将示例3-2的Outputl.asp改写为如下所述的程序代码。
当然也可以用循环的方法来取得所有的表单对象的内容值,这里只要利用For Each...Next语句块就可以完成。For Each...Next 语句块的使用语法如下:
因此也可以将示例3-2的Outputl.asp再次改写为下面的程序代码:
除了可以利用For Each...Next 语句块来取得表单对象的内容值外,也可以利用For Each...Next语句块中的element变量来取得表单对象的名称,其用法如下:
前面所介绍的方法都只能取得某一名称的表单对象,下面将介绍一个可以取得相同名称的内容值。在正式介绍之前,下面将先来谈谈如何取得组件名称相同的总数。要取得组件名称相同的总数其实没有使用什么特别的技巧,这里只是在取得表单对象内容的语法后,再加上一个Count 关键字,其使用语法如下:
至于如何取得相同名称的组件内容值,事实上也是很简单,因为这里只要在取得表单对象内容的语法后,再加上一个索引值就可以了,其语法如下:
下面例子将示范如何利用Request对象的Form数据集合来取得表单中相同名称的对象名称与内容值。
例3-3:
Stepl.建立一个HTML 的表单输入程序,其存储文件名称为Input2.asp,主要的字段包括中文姓名、英文姓名及兴趣等。其中特别将中文姓名及英文姓名的对象名称皆设为Name,其完整的HTML 程序内容如下:
Step2.建立一个处理表单的ASP程序,其存储文件名称为Output2.asp,这个ASP程序的主要目的是利用Request 对象的Form 数据集合来取得表中相同对象的对象名称和内容值,程序如下:
Step3.运行此例,通过浏览器运行输入程序Input2.asp,系统首先会显示一个如图3-4所示的输入界面,请输入中文姓名、英文姓名及兴趣等,并按下【确定】按钮。此时系统会将所输入数据的提交给Output2.asp 处理,这里Output2.asp 将显示刚才所输入的数据,结果如图3-5所示。由于表单中有相同名称的对象,因此,这里必须通过Form 数据集合的Count属性及索引值才能顺利取得相同名称的对象内容。
图3-4 输入界面
图3-5 通过Form 数据集合取得相同名称的变量内容
2.QueryString数据集合
QueryString 数据集合与Form 数据集合没有太大的区别,最主要的区别在于后者是通过表单来传递数据,而前者是通过取得HTTP 的附加参数来传递,附加参数通常是使用“?”来连接的。
例如在程序中想同时传递姓名(Name)与性别(Sex)两个参数,可以采用下面两个方法来完成。
(1)采用HTML语法。在HTML文件中加入以下的程序段,可以使用http://来指定特别的URL,如果不指定则表示目的文件在当前的目录中。
(2)使用ASP 语法。
那么又如何取得用户所传递的参数呢?同Form 数据集合一样,可以利用参数名称来取得该参数的内容值,也可以利用参数的索引值来取得参数的内容值,其语法如下:
其中,参数名称是在HTTP 查询字符串中指定要检索的变量名(variable),索引值是一个可选参数,可以用来检索变量(variable)的多个值中的某一个值,是可以是从1 到Request.QueryString(variable).Count之间的任何整数。
下面例子将示范如何使用Request对象的QueryString数据集合来取得用户所传递的变量。
例3-4:
Stepl.建立用户传递参数的ASP 程序,其文件存储名称为Input3.asp,这里将使用上面介绍的两种方法,程序如下:
Step2.建立处理参数的ASP 程序Output3.asp,程序将利用Request 对象的QueryString数据集合来取得参数的值。程序如下:(www.xing528.com)
Step3.通过浏览器运行输入程序Input3.asp,系统会出现一个如图3-6所示的超文本链接界面,单击指定的字符串,系统就会将字符串所对应的参数传给输出程序Output3.asp,运行结果如图3-7所示。
图3-6 超文本链接界面
图3-7 QueryString数据集合运行结果
同样,与Form 数据集合一样,在QueryString 数据集合中,可以利用参数的名称,也可以用索引值来取得参数的值,参考前面Form 的介绍。
另外,当一个参数名称不是惟一的时候,与Form 数据集合一样处理:先取得名称相同的参数的总数,然后再加上一个索引值就可以分别访问各个参数的值了。取得相同参数的总数的语法如下:
3.Cookies 数据集合
由于HTTP 是一个无状态的通讯协议,所以每一个连接都是全新的开始,因此,如果想要判断某个用户是否曾经进入本网站,那么在ASP 中只能使用Cookies。一般来说,当用户第一次进入本网站时,可以利用Response 对象的Cookies 数据集合将数据存储至服务器端的计算机中。当用户再次进入网站时,就可以利用Request 对象的Cookies 数据集合来取得相关信息。
而且,Cookies 的用途并不限于此,还可以根据需要自行设置相关信息,取得客户端的一些机器信息。
因此,Response 对象的Cookies 数据集合是负责取得记录在客户端的Cookies 数据,允许用户检索在HTTP 请求中发送的Cookie 的值。其语法如下:
以下就各个参数与返回值加以说明。
(1)CookiesName 参数
CookiesName 参数是表示这个Cookies 的名称,指定要检索其值的Cookie,是一个必需的参数。
(2)Key参数
Key 参数是表示可以从Cookies 目录中取得Cookies 的值,即用于从Cookie 字典中检索子关键字的值,是一个选择性参数。
(3)Attribute 参数
Attribute 参数是指定Cookie 自身的有关信息,即表示这个Cookies 的属性值。一般来说每一个Cookies 都包含Domain、Expires、HasKeys、Path 及Secure 等属性值。但对Request对象的Cookie 数据集合而言,它只包含HasKeys 属性,而且HasKeys 属性是一个只读(Read-Only)的属性,它可以用来判断指定的Cookies(目录)是否包含其他的Cookies。
(4)CookiesValue 返回值
Cooki sValue 是表示所要指定Cookies 的返回值。
Request 对象的Cookies 数据集合通常必须配合Response 对象的Cookies 数据集合一起使用,因此建议和后面的Response 对象的Cookies数据集合一起学习。
4.ServerVariables 数据集合
前面介绍的Form、QueryString、Cookies 等数据集合都是用来取得客户端所传递的数据,下面将介绍ServerVariables数据集合是负责取得Web服务器端的环境变量(Server Environment Variable),检索预定的环境变量。环境变量描述见表3-3。
表3-3 ServerVariables 环境变量
(续表)
同样,可以利用环境变量的名称来取得指定的环境变量的值,语法如下:
下面例子将介绍如何取得特定的环境变量内容。程序3-5.htm 就是显示所有的服务器变量的程序,将逐一列出各个非空值的服务器变量,因结果太长,只将结果附录在后。
例3-5:
运行结果如下:
服务器端变量
5.ClientCertificate 数据集合
ClientCertificate 集合从Web 浏览器发布请求中获取验证字段(由X.509 标准指定)。如果Web浏览器使用SSL3.0/PCT1协议(也就是说,它使用以https://开头的URL,而不是http://)连接服务器及服务器请求验证,则浏览器将发送验证字段。如果没有发送验证,ClientCertificate集合将返回EMPTY。要注意的是,必须先将Web 服务器配置为要求客户端验证,然后才能使用ClientCertificate集合。语法如下:
由此可见,ClientCertificate 集合的参数分为“关键字”和“关键字子字段”。关键字是指定要获取的验证字段名称,关键字及其意义描述见表3-4。
表3-4 ClientCertficate 的关键字
(续表)
关键字子字段是可选参数,用于按Subject 或Issuer 关键字检索单独的字段,此参数作为一个后缀添加到关键字参数中,具体描述见表3-5。
表3-5 ClientCertificate 的关键字子字段
下面例子将通过关键字用循环来遍历ClientCertificate 集合。
例3-6:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。