ASP Request 对象

ASP Request 对象用于从用户那里取得信息。

实例

QueryString 集合 实例

当用户点击链接时发送查询信息

本例演示如何在链接中向页面发送一些额外的查询信息,并在目标页面中取回这些信息(在本例中是同一页面)。

<html>
<body>

<a href="/example/aspe/demo_aspe_simplequerystring.asp?color=green">Example</a>

<%
Response.Write(Request.QueryString)
%>

</body>
</html>

对 QueryString 集合的简单应用

本例演示 QueryString 集合如何从表单取回值。此表单使用 GET 方法,这意外着所发送的信息对用户来说是可见的(在地址中)。GET 方法还会限制所发送信息的数量。

<html>
<body>

<form action="/example/aspe/demo_aspe_simplereqquery.asp" method="get">
First name: <input type="text" name="fname"><br />
Last name: <input type="text" name="lname"><br />
<input type="submit" value="Submit">
</form>

<%
Response.Write(Request.QueryString)
%>

</body>
</html>

如何使用从表单传来的信息

本例演示如何使用从表单取回的值。我们会使用 QueryString 集合。此表单使用 GET 方法。

<html>
<body>
<form action="/example/aspe/demo_aspe_reqquery.asp" method="get">
您的姓名:<input type="text" name="fname" size="20" />
<input type="submit" value="提交" />
</form>
<%
dim fname
fname=Request.QueryString("fname")
If fname<>"" Then
      Response.Write("你好!" & fname & "!<br />")
      Response.Write("今天过得怎么样?")
End If
%>
</body>
</html>

来自表单的更多信息

本例演示假如输入字段包含若干相同的名称的话,QueryString 会包含什么内容。它将展示如何把这些相同的名称分隔开来。它也会展示如何使用 count 关键词来对 "name" 属性进行计数。此表单使用 GET 方法。


<html>
<body>

<%
If Request.QueryString<>"" Then
      If Request.QueryString("name")<>", " Then
           name1=Request.QueryString("name")(1)
           name2=Request.QueryString("name")(2)
      end if
end if
%>

<form action="/example/aspe/demo_aspe_reqquery2.asp" method="get">
First name:
<input type="text" name="name" value="<%=name1%>" />
<br />
Last name:
<input type="text" name="name" value="<%=name2%>" />
<br />
<input type="submit" value="Submit" />
</form>
<hr>
<%
If Request.QueryString<>"" Then
      Response.Write("<p>")
      Response.Write("The information received from the form was:")
      Response.Write("</p><p>")
      Response.Write("name=" & Request.QueryString("name"))
      Response.Write("</p><p>")
      Response.Write("The name property's count is: ")
      Response.Write(Request.QueryString("name").Count)
      Response.Write("</p><p>")
      Response.Write("First name=" & name1)
      Response.Write("</p><p>")
      Response.Write("Last name=" & name2)
      Response.Write("</p>")
end if
%>
</body>
</html>

Form 集合 实例

一个 Form 集合的简单应用

本例演示 Form 集合如何从表单取回值。此表单使用 POST 方法,这意味着发送的信息对用户来说是不可见的,并且对所发送信息的量没有限制(可发送大量的信息)。

<html>
<body>

<form action="/example/aspe/demo_aspe_simpleform1.asp" method="post">
First name:
<input type="text" name="fname" value="Donald" />
<br />
Last name:
<input type="text" name="lname" value="Duck" />
<br />
<input type="submit" value="Submit" />
</form>

<%
Response.Write(Request.Form)
%>

</body>
</html>

如何使用来自表单的信息

本例演示如何使用从表单取回的信息。我们使用了 Form 集合。表单使用了 POST 方法。


<html>
<body>
<form action="/example/aspe/demo_aspe_simpleform.asp" method="post">
您的姓名:<input type="text" name="fname" size="20" />
<input type="submit" value="提交" />
</form>
<%
dim fname
fname=Request.Form("fname")
If fname<>"" Then
      Response.Write("您好!" & fname & "!<br />")
      Response.Write("今天过得怎么样?")
End If
%>
</body>
</html>

来自表单的更多信息

本例演示假如若干的输入域使用了相同的名称,Form 集合会包含什么信息。它将展示如何把这些相同的名称分割开来。它也会展示如何使用 count 关键词来对 "name" 属性进行计数。此表单使用 POST 方法。

<html>
<body>

<form action="/example/aspe/demo_aspe_form2.asp" method="post">
First name:
<input type="text" name="name" value="Donald" />
<br />
Last name:
<input type="text" name="name" value="Duck" />
<br />
<input type="submit" value="Submit" />
</form>
<hr />

<p>来自上面的表单的信息:</p>
<%
If Request.Form("name")<>"" Then
      Response.Write("<p>")
      Response.Write("name=" & Request.Form("name"))
      Response.Write("</p><p>")
      Response.Write("name 属性的数目:")
      Response.Write(Request.Form("name").Count)
      Response.Write("</p><p>")
      Response.Write("First name=" & Request.Form("name")(1))
      Response.Write("</p><p>") 
      Response.Write("Last name=" & Request.Form("name")(2))
      Response.Write("</p>") 
End if
%>

</body>
</html>

带有单选按钮的表单

本例演示如何使用 Form 集合通过单选按钮与用户进行交互。此表单使用 POST 方法。


<html>
<%
dim cars
cars=Request.Form("cars")
%>
<body>
<form action="/example/aspe/demo_aspe_radiob.asp" method="post">
<p>请选择您喜欢的汽车:</p>

<input type="radio" name="cars"
<%if cars="Volvo" then Response.Write("checked")%>
value="Volvo">Volvo</input>
<br />
<input type="radio" name="cars"
<%if cars="Saab" then Response.Write("checked")%>
value="Saab">Saab</input>
<br />
<input type="radio" name="cars"
<%if cars="BMW" then Response.Write("checked")%>
value="BMW">BMW</input>
<br /><br />
<input type="submit" value="提交" />
</form>
<%
if cars<>"" then
   Response.Write("<p>您喜欢的汽车是" & cars & "</p>")
end if
%>
</body>
</html>

带有复选按钮的表单

本例演示如何使用 Form 集合通过复选按钮与用户进行交互。此表单使用 POST 方法。


<html>
<body>
<%
fruits=Request.Form("fruits")
%>

<form action="/example/aspe/demo_aspe_checkboxes.asp" method="post">
<p>您喜欢哪些水果:</p>
<input type="checkbox" name="fruits" value="Apples"
<%if instr(fruits,"Apple") then Response.Write("checked")%>>
Apple
<br />
<input type="checkbox" name="fruits" value="Oranges"
<%if instr(fruits,"Oranges") then Response.Write("checked")%>>
Orange
<br />
<input type="checkbox" name="fruits" value="Bananas"
<%if instr(fruits,"Banana") then Response.Write("checked")%>>
Banana
<br />
<input type="submit" value="提交">
</form>
<%
if fruits<>"" then%>
   <p>您喜欢:<%Response.Write(fruits)%></p>
<%end if
%>

</body>
</html>

其他实例

获取用户信息

如何查明访问者的浏览器类型、IP 地址等信息。


<html>
<body>
<p>
<b>您正在通过这款浏览器访问我们的站点:</b>
<%Response.Write(Request.ServerVariables("http_user_agent"))%>
</p>
<p>
<b>您的 IP 地址是:</b>
<%Response.Write(Request.ServerVariables("remote_addr"))%>
</p>
<p>
<b>IP 地址的 DNS 查询是:</b>
<%Response.Write(Request.ServerVariables("remote_host"))%>
</p>
<p>
<b>调用该页面所用的方法是:</b>
<%Response.Write(Request.ServerVariables("request_method"))%>
</p>
<p>
<b>服务器的域名:</b>
<%Response.Write(Request.ServerVariables("server_name"))%>
</p>
<p>
<b>服务器的端口:</b>
<%Response.Write(Request.ServerVariables("server_port"))%>
</p>
<p>
<b>服务器的软件:</b>
<%Response.Write(Request.ServerVariables("server_software"))%>
</p>

</body>
</html>

获取服务器变量

本例演示如何使用 ServerVariables 集合取得访问者的浏览器类型、IP 地址等信息。


<html>
<body>

<p>
所有可能的服务器变量:
</p>
<%
For Each Item in Request.ServerVariables
      Response.Write(Item & "<br />")
Next
%>

</body>
</html>

创建 welcome cookie

本例演示如何使用 Cookies 集合创建一个欢迎 cookie


<%
dim numvisits
response.cookies("NumVisits").Expires=date+365 
numvisits=request.cookies("NumVisits")

if numvisits="" then
   response.cookies("NumVisits")=1
   response.write("欢迎!这是您第一次访问本页面。")
else
   response.cookies("NumVisits")=numvisits+1
   response.write("之前,您已经访问过本页面 ")
   response.write(numvisits & " 次。")
end if
%>
<html>
<body>
</body>
</html>

探测用户发送的字节总数

本例演示如何使用 TotalBytes 属性来取得用户在 Request 对象中发送的字节总数。


<html>
<body>

<form action="/example/aspe/demo_aspe_totalbytes.asp" method="post">
请键入一些字符:
<input type="text" name="txt"><br /><br />
<input type="submit" value="提交">
</form>

<%
If Request.Form("txt")<>"" Then
   Response.Write("您提交了:")
   Response.Write(Request.Form)
   Response.Write("<br /><br />")
   Response.Write("字节总计:")
   Response.Write(Request.Totalbytes)
End If
%>

</body>
</html>

Request 对象

当浏览器向服务器请求页面时,这个行为就被称为一个 request(请求)。

ASP Request 对象用于从用户那里获取信息。它的集合、属性和方法描述如下:

集合

集合 描述
ClientCertificate 包含了在客户证书中存储的字段值
Cookies 包含了 HTTP 请求中发送的所有 cookie 值
Form 包含了使用 post 方法由表单发送的所有的表单(输入)值
QueryString 包含了 HTTP 查询字符串中所有的变量值
ServerVariables 包含了所有的服务器变量值

属性

属性 描述
TotalBytes 返回在请求正文中客户端所发送的字节总数

方法

方法 描述
BinaryRead 取回作为 post 请求的一部分而从客户端送往服务器的数据,并把它存放到一个安全的数组之中。