Request 对象用于从访客那里获取信息。
当浏览器向服务器请求页面时,这个行为就被称为一个 request(请求)。Request 对象用于从用户那里获取信息。它的集合、属性和方法描述如下:
集合 | 描述 |
---|---|
ClientCertificate | 包含了存储在客户证书中的所有的字段值。 |
Cookies | 包含了 HTTP 请求中发送的所有的 cookie 值。 |
Form | 包含了使用 post 方法由表单发送的所有的表单(输入)值。 |
QueryString | 包含了 HTTP 查询字符串中所有的变量值。 |
ServerVariables | 包含了所有的服务器变量值。 |
属性 | 描述 |
---|---|
TotalBytes | 返回在请求正文中客户端发送的字节总数。 |
方法 | 描述 |
---|---|
BinaryRead | 取回作为 post 请求的一部分而从客户端发送至服务器的数据,并把它存储在一个安全的数组中。 |
当用户点击链接时发送查询信息
本例演示如何在链接中向页面发送查询信息,并在目标页面中取回这些信息(在本例中是同一页面)。
- <!DOCTYPE html>
- <html>
- <body>
- <a href="demo_simplequerystring.asp?color=green">Example</a>
- <%
- Response.Write(Request.QueryString)
- %>
- </body>
- </html>
QueryString 集合的简单应用
本例演示如何使用 QueryString 集合从表单取回值。(此表单使用 GET 方法,这意味着所发送的信息对用户来说是可见的。)
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_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>
如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用 GET 方法。
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_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 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用 GET 方法。
- <!DOCTYPE html>
- <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="demo_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 集合从表单取回值。(此表单使用 POST 方法,这意味着所发送的信息对用户来说是不可见的。)
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_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>
如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用了 POST 方法。
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_simpleform.asp" method="post">
- Your name: <input type="text" name="fname" size="20" />
- <input type="submit" value="Submit" />
- </form>
- <%
- dim fname
- fname=Request.Form("fname")
- If fname<>"" Then
- Response.Write("Hello " & fname & "!<br>")
- Response.Write("How are you today?")
- End If
- %>
- </body>
- </html>
来自表单的更多信息
本例演示如果输入字段包含若干相同的名称,Form 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用了 POST 方法。
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_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>The information received from the form above was:</p>
- <%
- If Request.Form("name")<>"" Then
- Response.Write("<p>")
- Response.Write("name=" & Request.Form("name"))
- Response.Write("</p><p>")
- Response.Write("The name property's count is: ")
- 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 方法。
- <!DOCTYPE html>
- <html>
- <%
- dim cars
- cars=Request.Form("cars")
- %>
- <body>
- <form action="demo_radiob.asp method="post">
- <p>Please select your favorite car:</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="Submit" />
- </form>
- <%
- if cars<>"" then
- Response.Write("<p>Your favorite car is: " & cars & "</p>")
- end if
- %>
- </body>
- </html>
带有复选框的表单
本例演示如何使用 Form 集合通过复选框与用户进行交互。此表单使用 POST 方法。
- <!DOCTYPE html>
- <html>
- <body>
- <%
- fruits=Request.Form("fruits")
- %>
- <form action="demo_checkboxes.asp" method="post">
- <p>Which of these fruits do you prefer:</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="Submit">
- </form>
- <%
- if fruits<>"" then%>
- <p>You like: <%Response.Write(fruits)%></p>
- <%end if
- %>
- </body>
- </html>
获取服务器变量
本例演示如何取得访客的浏览器类型、IP 地址等信息。
- <!DOCTYPE html>
- <html>
- <body>
- <p>
- <b>You are browsing this site with:</b>
- <%Response.Write(Request.ServerVariables("http_user_agent"))%>
- </p>
- <p>
- <b>Your IP address is:</b>
- <%Response.Write(Request.ServerVariables("remote_addr"))%>
- </p>
- <p>
- <b>The DNS lookup of the IP address is:</b>
- <%Response.Write(Request.ServerVariables("remote_host"))%>
- </p>
- <p>
- <b>The method used to call the page:</b>
- <%Response.Write(Request.ServerVariables("request_method"))%>
- </p>
- <p>
- <b>The server's domain name:</b>
- <%Response.Write(Request.ServerVariables("server_name"))%>
- </p>
- <p>
- <b>The server's port:</b>
- <%Response.Write(Request.ServerVariables("server_port"))%>
- </p>
- <p>
- <b>The server's software:</b>
- <%Response.Write(Request.ServerVariables("server_software"))%>
- </p>
- </body>
- </html>
- You are browsing this site with:
- Your IP address is: 42.120.45.233
- The DNS lookup of the IP address is: 42.120.45.233
- The method used to call the page: GET
- The server's domain name: shouce.ren
- The server's port: 80
- The server's software: Microsoft-IIS/7.5
创建 welcome cookie
本例演示如何创建一个 Welcome Cookie。
- <%
- dim numvisits
- response.cookies("NumVisits").Expires=date+365
- numvisits=request.cookies("NumVisits")
- if numvisits="" then
- response.cookies("NumVisits")=1
- response.write("Welcome! This is the first time you are visiting this Web page.")
- else
- response.cookies("NumVisits")=numvisits+1
- response.write("You have visited this ")
- response.write("Web page " & numvisits)
- if numvisits=1 then
- response.write " time before!"
- else
- response.write " times before!"
- end if
- end if
- %>
- <!DOCTYPE html>
- <html>
- <body>
- </body>
- </html>
探测用户发送的字节总数
本例演示如何探测用户在 Request 对象中发送的字节总数。
- <!DOCTYPE html>
- <html>
- <body>
- <form action="demo_totalbytes.asp" method="post">
- Please type something:
- <input type="text" name="txt"><br><br>
- <input type="submit" value="Submit">
- </form>
- <%
- If Request.Form("txt")<>"" Then
- Response.Write("You submitted: ")
- Response.Write(Request.Form)
- Response.Write("<br><br>")
- Response.Write("Total bytes: ")
- Response.Write(Request.Totalbytes)
- End If
- %>
- </body>
- </html>