首页 理论教育 ASP程序设计|Request对象数据集合

ASP程序设计|Request对象数据集合

时间:2023-11-20 理论教育 版权反馈
【摘要】:Request 对象总共提供了Form、QueryString、Cookies、ServerVariables 及ClientCertificate等数据集合,其所表示的意义见前面介绍。这个ASP 程序将利用Request对象的Form数据集合来取得用户在表单所填写的内容,其完整程序如下:Step3.运行示例,请通过浏览器运行输入程序Inputl.asp。由于表单中有相同名称的对象,因此,这里必须通过Form 数据集合的Count属性及索引值才能顺利取得相同名称的对象内容。

ASP程序设计|Request对象数据集合

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:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈