admin 管理员组文章数量: 1184232
2023年12月17日发(作者:axislabel)
ASP Request对象
Request对象用于接受所有从客户端浏览器发往服务器请求内的所有信息。当客户端请求一个页面或者发递一个表单时,服务器端将使用Request对象获取客户端提供的全部信息。包括从HTML表单用POST方法或者GET方法传递的参数、cookie和用户认证等。
1 Request对象成员
Request对象是ASP中使用最多的对象之一,它的成员非常少仅包含一个TotalByetes属性和一个BinaryRead方法。TotalByetes是一个只读的属性,表示从客户端所接收数据的字节的长度,其语法格式如下:
字节长度=<%=yetes%>
例如,下面的代码将返回用户输入数据的字节数:
<%
(yetes)
%>
Request对象具有唯一的方法BinaryRead(count),当数据作为Post请求的一部分发往服务器时,从客户请求中获得count字节的数据,返回一个数组。一般来说,如果使用BinaryRead方法来取得服务器端所传递的数据,那么就不能使用Request对象所提供的各种数据集合,否则会发生错误。反之,如果已经使用Request对象所提供的数据集合来取得客户端信息,那么就不能再使用BinaryRead方法,否则同样会发生错误。事实上,BinaryRead方法在实际编程中极少使用,其语法格式为:
Variant 数组=Read(count)
BinaryRead方法的返回值为通用变量数组(Variant Array),而其参数是一个整数,表示每次读取的数据字节大小,其范围介于0到Request对象的TotalByetes属性所取得的字节大小。
2 Request对象数据集合
Request对象提供了5个集合,可以用来访问客户端对Web服务器请求的各类信息,这些集合分别是:ClientCertificate、Cookies、Form、QueryString和ServerVariables,下面依次进行介绍。
1.ClientCertificate集合
ClientCertificate集合从Web浏览器发布请求中获取验证字段(由X.509标准指定)。在Web服务器端要先配置要求客户端验证,然后才能使用ClientCertificate集合,如果没有发送验证,ClientCertificate集合将返回EMPTY。
ClientCertificate集合的语法格式如下:
Certificate(Key[SubField])
参数说明:
Key 指定要获取的验证字段名称,各个验证字段的名称及含义如表2-1所示。
表2-1 验证字段
字段名称
Subject
Issuer
SerialNumber
Certificate
Flags
ClientCertificate
ValidFrom
ValisdUntil
含义
证书的主题
证书的发行人
证书的序列号
包含整个证书内容的二进制流,使用ASN.1格式
一组标志,提供客户端验证信息
返回一个以逗号分隔的子字段列表
证书发行的日期。此日期遵循VBScript格式并随国家(地区)设置而变化
证书的到期时间
SubField 可选参数,用于按Subject或者Issuer关键字检索单独的字段。此参数将作为一个后缀添加到Key参数中。例如,IssuerO或者SubjectCN。
下面的示例使用Subject关键字测试客户端验证是否存在。
<%
If Len(Certificate("Subject")) = 0
("No client certificate was presented")
End If
%>
2.Cookies集合
由于HTTP是一个无状态的通信协议,所以每次与服务器的连接都被认为全新,因此,如果想要判断某个客户端是否访问过本服务器,那么就可以使用Cookies集合。通常情况下,当客户端第一次与服务器建立连接时,可以利用Response对象的Cookies数据集合将一个“标记”存放到客户端。当客户端再次与本服务器建立连接时,就可利用Request对象的Cookies集合获取该“标记”信息。
从Cookies集合中获取信息的语法如下:
CookieValue=s(cookie)[(key) |.attribute]
各参数的意义如下:
参数cookie 指定要检索其值的cookie。
可选参数key 用于从cookie中检索子关键字的值;
参数Attribute 指定与cookie自身有关的属性。一般情况下,每个Cookies都包含Domain、Expires、HasKeys、Path和Secure等属性。但对于Request对象的Cookie数据集合而言,只包含HasKeys属性。而且HasKeys属性是一个只读属性,它可以用来判断指定的Cookies是否包含其他的Cookies。
Request对象的Cookies集合通常与Response对象的Cookies集合一起使用,因些将在介绍Response对象的Cookies集合时将详细说明。
3.Form集合
这个集合里放的是客户端使用POST方法传向服务器的数据集合。比如,在HTML文档中,有一个From,其method的方式是POST(不是GET),而这个From的action指向一个ASP文档,那么当用户点击上传后,那么这个From内的input、Select、checkbox等里面是值都会放入Form集合内。
Form集合的语法格式如下:
(element)[(index)|.Count]
参数说明:
Element From内的元素名称
Index 可选属性,是索引,指定了该From内的元素的第几个,有时候,在一个From内有好几个相同的元素,名字都一样,可用这个属性来指定是那一个,其值是1到Count中的整数,Count表示所有这个相同的元素传过来的整数。如果不用改属性,那么数据会用“,”分开。
例如下面的代码就获取了表单内Text文本框的内容。
<%
Dim value1,value2
'获取用户输入的数据
value1=("txtbox1")
value2=("txtbox2")
%>
4.QueryString集合
客户端数据提交方式有两种:GET与POST。QueryString集合用来收集以GET方式提交的数据,而POST方式提交的表单数据则由Form集合来收集。QueryString集合与Form集合主要的区别在于前者是通过取得HTTP的附加参数来传递数据(附加参数通常使用“?”来连接,多个参数间用&隔开),而后者通过单独的数据包来传递数据。
例如:/?key=web&ClassID=1&stype=old
在浏览器中输入上面地址,那么文件将收到三个变量的值,分别是:key、ClassID和stype。
QueryString集合的语法格式如下:
tring(variable)[(index)|.Count]
参数说明:
Variable 是属性名。
Index 可选属性。是索引,指定同名变量里的第几个。
Count 是表单中元素的个数。
下面的示例就通过变量fname获取文本框的内容,判断并显示相应的问候信息,具体代码如下:
<%
Dim fname
fname=tring("fname")
If fname<>"" Then
("Hello " & fname & "!
")
("How are you today?")
End If
%>
如果表单的Method为Post,则QueryString集合无法获取数据,必须使用Form集合。与此相同,当Method属性为Get时,则必须通过
QueryString集合获取数据。
5.ServerVariables集合
Request的ServerVariables集合中记录了与HTTP请求一超传递的HTTP头信息。浏览器的请求和服务器端的响应都包含在HTTP头,HTTP头提供了有关请求和响应的附加信息等。通过访问ServerVariables集合,可以获取有关发出请求的浏览器信息、客户端的IP地址等重要信息。
访问ServerVariables集合的语法如下:
Variables("服务器环境变量")
由于服务器环境变量较多,表2-2出了其中常用的服务器环境变量。
表2-2 服务器环境变量
环境变量 说明
ALL_HTTP
CONTENT_LENGTH
CONTENT_TYPE
LOCAL_ADDR
客户端发送的所有HTTP标题文件。
客户端发送内容的长度。
内容的数据类型(如:“text/html”)。同附加信息的查询一起使用,如HTTP查询GET、POST和PUT。
返回接受请求的服务器地址。如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。
LOGON_USER
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REQUEST_METHOD
SERVER_NAME
SERVER_PORT
URL
SCRIPT_NAME
HTTP_USER_AGENT
用户登录Windows NT的帐号。
查询HTTP请求中问号(?)后的信息。
发出请求的远程主机 (client)的IP地址。
发出请求的主机(客户端)名称。如果服务器无此信息,将被设置为空的MOTE_ADDR变量。
该方法用于提出请求。相当于用于HTTP的GET、HEAD、POST等。
出现在自引用URL中的服务器主机名、DNS化名或者IP地址。
发送请求的端口号。
提供URL的基本部分。
执行脚本的虚拟路径。
用户代理字符串。
可以使用如下代码输出ServerVariable集合中所有的服务器环境变量:
Dim item
For Each item In Variables
item & "
"
Next
版权声明:本文标题:ASP Request对象 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1702815774a431963.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论