ASP Request 对象


Request 对象用于从访客那里获取信息。

Request 对象

当浏览器向服务器请求页面时,这个行为就被称为一个 request(请求)。Request 对象用于从用户那里获取信息。它的集合、属性和方法描述如下:

集合

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

属性

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

方法

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

在线实例

当用户点击链接时发送查询信息
本例演示如何在链接中向页面发送查询信息,并在目标页面中取回这些信息(在本例中是同一页面)。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <a href="demo_simplequerystring.asp?color=green">Example</a>
  6.  
  7. <%
  8. Response.Write(Request.QueryString)
  9. %>
  10.  
  11. </body>
  12. </html>

QueryString 集合的简单应用
本例演示如何使用 QueryString 集合从表单取回值。(此表单使用 GET 方法,这意味着所发送的信息对用户来说是可见的。)

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <form action="demo_simplereqquery.asp" method="get">
  6. First name: <input type="text" name="fname"><br>
  7. Last name: <input type="text" name="lname"><br>
  8. <input type="submit" value="Submit">
  9. </form>
  10.  
  11. <%
  12. Response.Write(Request.QueryString)
  13. %>
  14.  
  15. </body>
  16. </html>

如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用 GET 方法。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <form action="demo_simplereqquery.asp" method="get">
  6. First name: <input type="text" name="fname"><br>
  7. Last name: <input type="text" name="lname"><br>
  8. <input type="submit" value="Submit">
  9. </form>
  10.  
  11. <%
  12. Response.Write(Request.QueryString)
  13. %>
  14.  
  15. </body>
  16. </html>

来自表单的更多信息
本例演示如果输入字段包含若干相同的名称,QueryString 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用 GET 方法。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <%
  6. If Request.QueryString<>"" Then
  7.       If Request.QueryString("name")<>", " Then
  8.            name1=Request.QueryString("name")(1)
  9.            name2=Request.QueryString("name")(2)
  10.       end if
  11. end if
  12. %>
  13.  
  14. <form action="demo_reqquery2.asp" method="get">
  15. First name:
  16. <input type="text" name="name" value="<%=name1%>" />
  17. <br>
  18. Last name:
  19. <input type="text" name="name" value="<%=name2%>" />
  20. <br>
  21. <input type="submit" value="Submit" />
  22. </form>
  23. <hr>
  24. <%
  25. If Request.QueryString<>"" Then
  26.       Response.Write("<p>")
  27.       Response.Write("The information received from the form was:")
  28.       Response.Write("</p><p>")
  29.       Response.Write("name=" & Request.QueryString("name"))
  30.       Response.Write("</p><p>")
  31.       Response.Write("The name property's count is: ")
  32.       Response.Write(Request.QueryString("name").Count)
  33.       Response.Write("</p><p>")
  34.       Response.Write("First name=" & name1)
  35.       Response.Write("</p><p>")
  36.       Response.Write("Last name=" & name2)
  37.       Response.Write("</p>")
  38. end if
  39. %>
  40. </body>
  41. </html>

在线实例

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

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <form action="demo_simpleform1.asp" method="post">
  6. First name:
  7. <input type="text" name="fname" value="Donald" />
  8. <br>
  9. Last name:
  10. <input type="text" name="lname" value="Duck" />
  11. <br>
  12. <input type="submit" value="Submit" />
  13. </form>
  14.  
  15. <%
  16. Response.Write(Request.Form)
  17. %>
  18.  
  19. </body>
  20. </html>

如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用了 POST 方法。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <form action="demo_simpleform.asp" method="post">
  5. Your name: <input type="text" name="fname" size="20" />
  6. <input type="submit" value="Submit" />
  7. </form>
  8. <%
  9. dim fname
  10. fname=Request.Form("fname")
  11. If fname<>"" Then
  12.       Response.Write("Hello " & fname & "!<br>")
  13.       Response.Write("How are you today?")
  14. End If
  15. %>
  16. </body>
  17. </html>

来自表单的更多信息
本例演示如果输入字段包含若干相同的名称,Form 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用了 POST 方法。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <form action="demo_form2.asp" method="post">
  6. First name:
  7. <input type="text" name="name" value="Donald" />
  8. <br>
  9. Last name:
  10. <input type="text" name="name" value="Duck" />
  11. <br>
  12. <input type="submit" value="Submit" />
  13. </form>
  14. <hr>
  15.  
  16. <p>The information received from the form above was:</p>
  17. <%
  18. If Request.Form("name")<>"" Then
  19.       Response.Write("<p>")
  20.       Response.Write("name=" & Request.Form("name"))
  21.       Response.Write("</p><p>")
  22.       Response.Write("The name property's count is: ")
  23.       Response.Write(Request.Form("name").Count)
  24.       Response.Write("</p><p>")
  25.       Response.Write("First name=" & Request.Form("name")(1))
  26.       Response.Write("</p><p>") 
  27.       Response.Write("Last name=" & Request.Form("name")(2))
  28.       Response.Write("</p>") 
  29. End if
  30. %>
  31.  
  32. </body>
  33. </html>

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

  1. <!DOCTYPE html>
  2. <html>
  3. <%
  4. dim cars
  5. cars=Request.Form("cars")
  6. %>
  7. <body>
  8. <form action="demo_radiob.asp method="post">
  9. <p>Please select your favorite car:</p>
  10.  
  11. <input type="radio" name="cars"
  12. <%if cars="Volvo" then Response.Write("checked")%>
  13. value="Volvo">Volvo</input>
  14. <br>
  15. <input type="radio" name="cars"
  16. <%if cars="Saab" then Response.Write("checked")%>
  17. value="Saab">Saab</input>
  18. <br>
  19. <input type="radio" name="cars"
  20. <%if cars="BMW" then Response.Write("checked")%>
  21. value="BMW">BMW</input>
  22. <br><br>
  23. <input type="submit" value="Submit" />
  24. </form>
  25. <%
  26. if cars<>"" then
  27.    Response.Write("<p>Your favorite car is: " & cars & "</p>")
  28. end if
  29. %>
  30. </body>
  31. </html>

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

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <%
  5. fruits=Request.Form("fruits")
  6. %>
  7.  
  8. <form action="demo_checkboxes.asp" method="post">
  9. <p>Which of these fruits do you prefer:</p>
  10. <input type="checkbox" name="fruits" value="Apples"
  11. <%if instr(fruits,"Apple") then Response.Write("checked")%>>
  12. Apple
  13. <br>
  14. <input type="checkbox" name="fruits" value="Oranges"
  15. <%if instr(fruits,"Oranges") then Response.Write("checked")%>>
  16. Orange
  17. <br>
  18. <input type="checkbox" name="fruits" value="Bananas"
  19. <%if instr(fruits,"Banana") then Response.Write("checked")%>>
  20. Banana
  21. <br>
  22. <input type="submit" value="Submit">
  23. </form>
  24. <%
  25. if fruits<>"" then%>
  26.    <p>You like: <%Response.Write(fruits)%></p>
  27. <%end if
  28. %>
  29.  
  30. </body>
  31. </html>

在线实例

获取服务器变量
本例演示如何取得访客的浏览器类型、IP 地址等信息。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>
  5. <b>You are browsing this site with:</b>
  6. <%Response.Write(Request.ServerVariables("http_user_agent"))%>
  7. </p>
  8. <p>
  9. <b>Your IP address is:</b>
  10. <%Response.Write(Request.ServerVariables("remote_addr"))%>
  11. </p>
  12. <p>
  13. <b>The DNS lookup of the IP address is:</b>
  14. <%Response.Write(Request.ServerVariables("remote_host"))%>
  15. </p>
  16. <p>
  17. <b>The method used to call the page:</b>
  18. <%Response.Write(Request.ServerVariables("request_method"))%>
  19. </p>
  20. <p>
  21. <b>The server's domain name:</b>
  22. <%Response.Write(Request.ServerVariables("server_name"))%>
  23. </p>
  24. <p>
  25. <b>The server's port:</b>
  26. <%Response.Write(Request.ServerVariables("server_port"))%>
  27. </p>
  28. <p>
  29. <b>The server's software:</b>
  30. <%Response.Write(Request.ServerVariables("server_software"))%>
  31. </p>
  32.  
  33. </body>
  34. </html>
  1. You are browsing this site with:
  2. Your IP address is: 42.120.45.233
  3. The DNS lookup of the IP address is: 42.120.45.233
  4. The method used to call the page: GET
  5. The server's domain name: shouce.ren
  6. The server's port: 80
  7. The server's software: Microsoft-IIS/7.5

创建 welcome cookie
本例演示如何创建一个 Welcome Cookie。

  1. <%
  2. dim numvisits
  3. response.cookies("NumVisits").Expires=date+365 
  4. numvisits=request.cookies("NumVisits")
  5.  
  6. if numvisits="" then
  7.    response.cookies("NumVisits")=1
  8.    response.write("Welcome! This is the first time you are visiting this Web page.")
  9. else
  10.    response.cookies("NumVisits")=numvisits+1
  11.    response.write("You have visited this ")
  12.    response.write("Web page " & numvisits)
  13.    if numvisits=1 then
  14.      response.write " time before!"
  15.    else
  16.      response.write " times before!"
  17.    end if
  18. end if
  19. %>
  20. <!DOCTYPE html>
  21. <html>
  22. <body>
  23. </body>
  24. </html>

探测用户发送的字节总数
本例演示如何探测用户在 Request 对象中发送的字节总数。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <form action="demo_totalbytes.asp" method="post">
  6. Please type something:
  7. <input type="text" name="txt"><br><br>
  8. <input type="submit" value="Submit">
  9. </form>
  10.  
  11. <%
  12. If Request.Form("txt")<>"" Then
  13.    Response.Write("You submitted: ")
  14.    Response.Write(Request.Form)
  15.    Response.Write("<br><br>")
  16.    Response.Write("Total bytes: ")
  17.    Response.Write(Request.Totalbytes)
  18. End If
  19. %>
  20.  
  21. </body>
  22. </html>