ASP Request 对象

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

实例

QueryString 集合 实例

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

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

  1. <html>
  2. <body>
  3. <a href="/example.mde/demo.mde_simplequerystring.md?color=green">Example</a>
  4. <%
  5. Response.Write(Request.QueryString)
  6. %>
  7. </body>
  8. </html>

对 QueryString 集合的简单应用

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_simplereqquery.md" method="get">
  4. First name: <input type="text" name="fname"><br />
  5. Last name: <input type="text" name="lname"><br />
  6. <input type="submit" value="Submit">
  7. </form>
  8. <%
  9. Response.Write(Request.QueryString)
  10. %>
  11. </body>
  12. </html>

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

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_reqquery.md" method="get">
  4. 您的姓名:<input type="text" name="fname" size="20" />
  5. <input type="submit" value="提交" />
  6. </form>
  7. <%
  8. dim fname
  9. fname=Request.QueryString("fname")
  10. If fname<>"" Then
  11. Response.Write("你好!" & fname & "!<br />")
  12. Response.Write("今天过得怎么样?")
  13. End If
  14. %>
  15. </body>
  16. </html>

来自表单的更多信息

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

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

Form 集合 实例

一个 Form 集合的简单应用

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_simpleform1.md" method="post">
  4. First name:
  5. <input type="text" name="fname" value="Donald" />
  6. <br />
  7. Last name:
  8. <input type="text" name="lname" value="Duck" />
  9. <br />
  10. <input type="submit" value="Submit" />
  11. </form>
  12. <%
  13. Response.Write(Request.Form)
  14. %>
  15. </body>
  16. </html>

如何使用来自表单的信息

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_simpleform.md" method="post">
  4. 您的姓名:<input type="text" name="fname" size="20" />
  5. <input type="submit" value="提交" />
  6. </form>
  7. <%
  8. dim fname
  9. fname=Request.Form("fname")
  10. If fname<>"" Then
  11. Response.Write("您好!" & fname & "!<br />")
  12. Response.Write("今天过得怎么样?")
  13. End If
  14. %>
  15. </body>
  16. </html>

来自表单的更多信息

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_form2.md" method="post">
  4. First name:
  5. <input type="text" name="name" value="Donald" />
  6. <br />
  7. Last name:
  8. <input type="text" name="name" value="Duck" />
  9. <br />
  10. <input type="submit" value="Submit" />
  11. </form>
  12. <hr />
  13. <p>来自上面的表单的信息:</p>
  14. <%
  15. If Request.Form("name")<>"" Then
  16. Response.Write("<p>")
  17. Response.Write("name=" & Request.Form("name"))
  18. Response.Write("</p><p>")
  19. Response.Write("name 属性的数目:")
  20. Response.Write(Request.Form("name").Count)
  21. Response.Write("</p><p>")
  22. Response.Write("First name=" & Request.Form("name")(1))
  23. Response.Write("</p><p>")
  24. Response.Write("Last name=" & Request.Form("name")(2))
  25. Response.Write("</p>")
  26. End if
  27. %>
  28. </body>
  29. </html>

带有单选按钮的表单

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

  1. <html>
  2. <%
  3. dim cars
  4. cars=Request.Form("cars")
  5. %>
  6. <body>
  7. <form action="/example.mde/demo.mde_radiob.md" method="post">
  8. <p>请选择您喜欢的汽车:</p>
  9. <input type="radio" name="cars"
  10. <%if cars="Volvo" then Response.Write("checked")%>
  11. value="Volvo">Volvo</input>
  12. <br />
  13. <input type="radio" name="cars"
  14. <%if cars="Saab" then Response.Write("checked")%>
  15. value="Saab">Saab</input>
  16. <br />
  17. <input type="radio" name="cars"
  18. <%if cars="BMW" then Response.Write("checked")%>
  19. value="BMW">BMW</input>
  20. <br /><br />
  21. <input type="submit" value="提交" />
  22. </form>
  23. <%
  24. if cars<>"" then
  25. Response.Write("<p>您喜欢的汽车是" & cars & "</p>")
  26. end if
  27. %>
  28. </body>
  29. </html>

带有复选按钮的表单

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

  1. <html>
  2. <body>
  3. <%
  4. fruits=Request.Form("fruits")
  5. %>
  6. <form action="/example.mde/demo.mde_checkboxes.md" method="post">
  7. <p>您喜欢哪些水果:</p>
  8. <input type="checkbox" name="fruits" value="Apples"
  9. <%if instr(fruits,"Apple") then Response.Write("checked")%>>
  10. Apple
  11. <br />
  12. <input type="checkbox" name="fruits" value="Oranges"
  13. <%if instr(fruits,"Oranges") then Response.Write("checked")%>>
  14. Orange
  15. <br />
  16. <input type="checkbox" name="fruits" value="Bananas"
  17. <%if instr(fruits,"Banana") then Response.Write("checked")%>>
  18. Banana
  19. <br />
  20. <input type="submit" value="提交">
  21. </form>
  22. <%
  23. if fruits<>"" then%>
  24. <p>您喜欢:<%Response.Write(fruits)%></p>
  25. <%end if
  26. %>
  27. </body>
  28. </html>

其他实例

获取用户信息

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

  1. <html>
  2. <body>
  3. <p>
  4. <b>您正在通过这款浏览器访问我们的站点:</b>
  5. <%Response.Write(Request.ServerVariables("http_user_agent"))%>
  6. </p>
  7. <p>
  8. <b>您的 IP 地址是:</b>
  9. <%Response.Write(Request.ServerVariables("remote_addr"))%>
  10. </p>
  11. <p>
  12. <b>IP 地址的 DNS 查询是:</b>
  13. <%Response.Write(Request.ServerVariables("remote_host"))%>
  14. </p>
  15. <p>
  16. <b>调用该页面所用的方法是:</b>
  17. <%Response.Write(Request.ServerVariables("request_method"))%>
  18. </p>
  19. <p>
  20. <b>服务器的域名:</b>
  21. <%Response.Write(Request.ServerVariables("server_name"))%>
  22. </p>
  23. <p>
  24. <b>服务器的端口:</b>
  25. <%Response.Write(Request.ServerVariables("server_port"))%>
  26. </p>
  27. <p>
  28. <b>服务器的软件:</b>
  29. <%Response.Write(Request.ServerVariables("server_software"))%>
  30. </p>
  31. </body>
  32. </html>

获取服务器变量

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

  1. <html>
  2. <body>
  3. <p>
  4. 所有可能的服务器变量:
  5. </p>
  6. <%
  7. For Each Item in Request.ServerVariables
  8. Response.Write(Item & "<br />")
  9. Next
  10. %>
  11. </body>
  12. </html>

创建 welcome cookie

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

  1. <%
  2. dim numvisits
  3. response.cookies("NumVisits").Expires=date+365
  4. numvisits=request.cookies("NumVisits")
  5. if numvisits="" then
  6. response.cookies("NumVisits")=1
  7. response.write("欢迎!这是您第一次访问本页面。")
  8. else
  9. response.cookies("NumVisits")=numvisits+1
  10. response.write("之前,您已经访问过本页面 ")
  11. response.write(numvisits & " 次。")
  12. end if
  13. %>
  14. <html>
  15. <body>
  16. </body>
  17. </html>

探测用户发送的字节总数

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

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_totalbytes.md" method="post">
  4. 请键入一些字符:
  5. <input type="text" name="txt"><br /><br />
  6. <input type="submit" value="提交">
  7. </form>
  8. <%
  9. If Request.Form("txt")<>"" Then
  10. Response.Write("您提交了:")
  11. Response.Write(Request.Form)
  12. Response.Write("<br /><br />")
  13. Response.Write("字节总计:")
  14. Response.Write(Request.Totalbytes)
  15. End If
  16. %>
  17. </body>
  18. </html>

Request 对象

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

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

集合

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

属性

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

方法

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