版权归原作者所有,如有侵权,请联系我们

[科普中国]-Request对象

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后服务器通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。

简介Request对象,又称为请求对象,该对象派生自HTTPResponse类,是ASP中重要的服务器内置对象,它连接着Web服务器和Web客户端程序。该对象用来获取客户端在请求一个页面或者传送一个Form时提供的所有信息,包括能够标识浏览器和用户的HTTP变量、存储在客户端Cookie信息以及附在URL后面的值、查询字符串或页面中Form段HTML控件内的值、Cookie、客户端证书、查询字符串等1。如浏览器和用户的变量,客户端表单中的数据、变量或者客户端的cookie信息等,Request对象对应的类是System、Web、HttpRequest类。

Request对象的属性与方法Request对象的属性

Request对象唯一的属性是TotalBytes,它提供关于用户请求的字节数量的信息:返回由客户端发出的请求信息的字节数。使用中通常关注客户端各项请求信息的值而非整个请求字符串,因此该属性很少被用于ASP页。

Request对象的方法

Request对象唯一的方法是BinaryRead,它允许访问从用户页面段中传递给服务器的请求信息的完整内容。其语法格式为:

Request.BinaryRead(count)

说明:

① count表示当数据作为POST请求的一部分发往服务器时,从客户请求中获得数据的字节数。

② 该方法返回一个Variant数组(或者SafeArray)。

③ 如果ASP代码已经引用了Request.Form集合,这个方法就不能再用。同样,如果用了BinaryRead方法,也不能再访问Request.Form集合。

Request对象的使用

在ASP中,当客户端请求一个页面或传递一个表单时,Request对象为脚本提供了客户端浏览器所提供的全部信息,包括用户请求的所有信息、用户为该域名存放在浏览器下的Cookie、使用Secure Socket Layer(SSL)或其它加密通信协议的授权访问以及对连接进行管理的属性等。Request对象可以利用集合、属性、方法等来进行参数的传递。其语法格式为:

Request.[ 集合 | 属性 | 方法 ] ( 变量 )

语法Request对象的语法如下:

Request[.collectionlpropertylmethod](variable)

collection集合

clientcertificate 得到在HTTP请求中传递在客户端认证域的值

cookies 使用此集合,可得到cookies值

form 得到form对象中元素的值

querystring 得到变量的值

servervariables 得到预置的环境变量的值

property属性

totalbytes (只读)指定从客户端传递总字节数

buffer 表明页面输出是否有缓冲

cachecontrol 决定代理服务器是否能够对asp的输出进行快取

property属性

charset 字符集

contenttype 指定response的HTTP内容类型

expires 定义一个浏览器缓存中的页面在多长时间后过期

expiresabsolute 定义一个浏览器缓存中的页面什么日期时间后过期

isclientconnected 用户是否连接到服务器

pics 设置pics-label response标题的值,标示pics内容等级

status 由服务器返回的状态行

说明:

1、其中collection表示集合,它和数组很类似,是由若干元素组成的集合。不过数组一般只能用索引(下标)来引用每一个元素,而集合不仅可以用索引来引用每一个元素的值,还可以用元素的名称来引用,如Request.Form("txtA")。事实上,后者是常用的方法。

2、variable又称参数,它就是要获取的元素的名称,可以是字符串常量或字符串变量。例如,对表单信息来说,variable就是每一个表单元素的名称。

3、“【”和“】”之间的参数可以省略,如Request("txtA")。此时因为没有指定集合,所以ASP将会依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate这5种集合中检查是否有信息传入。如果有信息传入,则会返回获取的信息。

4、请注意上面的第二个例子,其中前面的strB是定义的一个变量名称,而后面的strB则是集合中一个元素的名称,两者不是一回事。

method方法:binaryread 得到从客户端传给服务器端的数据,Request对象是ASP中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息。通过Request对象能够获得客户端发送给服务器的信息,不能将服务器端的数据发送给客户端的浏览器。Request对象的属性TotalBytes的功能是取得客户端响应数据字节大小。Request对象的方法BinaryRead的功能是以二进制方式读取客户端post的数据。

对象集合request对象有五个集合,下面予以介绍:

QueryString

:用以获取客户端附在url地址后的查询字符串中的信息。

例如:stra=Request.QueryString ["strUserld"]

Form

:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

例如:stra=Request.Form["strUserld"]

Cookies

:用以获取客户端的Cookie信息。

例如:stra=Request.Cookies["strUserld"]

ServerVariables

:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址

ClientCertificate

:用以获取客户端的身份验证信息

例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。

动态服务器页面ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用2。ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM(Distributed Component Object Model)和MTS(Microsoft Transaction Server)的情况下,ASP甚至可以实现中等规模的企业应用程序。

本词条内容贡献者为:

曹袖 - 高级工程师 - 复旦大学