zoukankan      html  css  js  c++  java
  • ASP入门(八)-Request对象

    Request是ASP的耳朵,它可以获得客户端传递来的消息。

    BinaryRead方法和TotalBytes属性

    用于以二进制方式读取客户端的请求,比如处理通过客户端上传文件时,通常使用这个方法来读取客户端所上传的文件数据。

    语法

        variant = Request.BinaryRead(count)

    count参数是必须的,规定要从客户端读取多少字节

    整个方法返回一个数组。

    Request.TotalBytes只读属性,通过这个属性可以获得客户端发出请求的整个字节总数,它通常和BinaryRead方法配合使用,用以获得用户的二进制请求。

    语法

        varbytes = Request.TotalBytes

    简单的例子如下:

    <%
    Dim a, b
    a = Request.TotalBytes
    b = Request.BinaryRead(a)
    %>

    Form和QueryString集合

    这两个集合都是客户端向服务器端发送信息的常用手段。

    Form集合一般是通过表单形式提交,多用于用户注册、登录、发表等等场合,使用Form集合获取的提交数据,要求<form>标签的method属性为POST,通过POST方式请求我们的ASP页面。这时客户端所填写的信息将以(名称=值)方式附加在HTTP请求头之后,在ASP端我们就可以通过Form集合来获取。

    QueryString集合我们又称为地址栏变量集合,例如经常浏览论坛帖子的URL,如下:

    20150813001

    这样提交的信息就可以通过Request.QueryString集合来获取。QueryString也可以通过在设计表单时,将<form>标签的method属性设为GET来提交。

    下面我们举个例子来说明,这个例子包含两个文件,FormGet.html和get.asp,Form.html主要显示一个表单,让用户输入一些信息,GET.asp通过QueryString集合来获取用户填写的内容。

    FormGet.html 关键代码如下:

    <form action="get.asp" method="get">
      <p>名 : <input name="firstname"></p>
      <p>姓 : <input name="lastname"></p>
      <p>你最喜欢的颜色 : 
        <select name="color">
          <option></option>
          <option>绿</option>
          <option></option>
          <option></option>
          <option></option>
        </select>
       </p>
       <p><input type="submit"></p>
    </form>
    

    get.asp 关键代码如下:

    <h1>你好,  
      <% =Request.QueryString("lastname") %>
      <% =Request.QueryString("firstname") %>
    </h1>
    <p>你最喜欢的颜色是 <% =Request.QueryString("color") %></p>
    

    运行 FormGet.html 后,显示如下:

    20150813002

    点击“提交查询”后,通过 GET 方式传递给 get.asp 文件,如下图:

    20150813003

    我们也可以尝试着改写 FormPost.html 的表单通过POST方式提交,由post.asp文件通过Form集合来获取用户填写的内容。

    formpost.html 和 前面的 formget.html 一样,就是<form>标签的method属性修改为post。

    <form action="post.asp" method="post">

    post.asp 关键代码如下:

    ...
    <h1>你好,  
      <% =Request.Form("lastname") %>
      <% =Request.Form("firstname") %>
    </h1>
    <p>你最喜欢的颜色是 <% =Request.Form %></p>
    ...

    运行 formpost.html 后并“提交查询”后结果如下:

    20150813004


    Cookies集合

    在上一节 Response 对象的讲解中我们的例子中有如何向客户端发送 Cookies 来存储信息,后面的代码中又从客户端读取 Cookies 信息。

    这里我们在举个欢迎的例子WelcomeCookies.asp,自动记录您是第几次访问,主要代码如下:

    <%
    Dim numVisits
    '设置numVisits在一年后过期
    Response.Cookies("numVisits").Expires = DateAdd("d", 365, Date())
    numVisits = Request.Cookies("numVisits")
    
    If numVisits = "" Then
      '没有numVisits,是第一次登录,
      Response.Cookies("numVisits") = 1
      Response.Write("<h1>欢迎,这是您第一次访问该页面!</h1>")
    Else
      numVisits = numVisits + 1
      Response.Write("<h1>这是您第 " & numVisits & " 次访问。</h1>")
      Response.Cookies("numVisits") = numVisits
    End If
    %>
    

    第一次运行该页面,会显示

    20150813005

    第二次再次该页面,显示如下:

    20150813006


    ServerVariables集合

    使用这个集合,不仅可以获得客户端向服务器端发送请求的一些信息,还可以获得服务端的一些信息。

    下面这个例子 (ShowAllServerVariables.asp),将显示出所有的服务器变量信息,主要代码如下:

    ...
    <%
    Dim x
    For Each x In Request.ServerVariables
      Response.Write("<p><b>【" & x & "】</b>")
      Response.Write(Request.ServerVariables(x) & "</p>")
    Next
    %>
    ...

    显示效果如下图:

    20150813007

    部分常用服务器环境变量列表:

    名称 作用
    ALL_HTTP 客户端发送的HTTP headers
    CONTENT_LENGTH 客户端发送内容的长度
    CONTENT_TYPE 内容的数据类型
    LOCAL_ADDR 返回请求的服务器地址
    LOGON_USER 用户登录WindowsNT账号
    QUERY_STRING 查询HTTP请求中?后的信息
    REMOTE_ADDR 发出请求的远程主机(client)IP地址
    REMOTE_HOST 发出请求的主机(client)名称
    REQUEST_METHOD 请求的方法,GET、POST等
    SERVER_NAME 出现在URL中的服务器主机名、DNS别名或IP地址
    SERVER_PORT 发送请求的端口号

    ClientCertificate集合

    包含了存储在客户证书中的所有的字段值,这个集合不常用。某些对于安全性较高的场合试用,支付类网站。


    示例代码下载

    Request.rar

  • 相关阅读:
    Windows Intune, 让企业 IT 如履平地
    如何利用 WinDbg 进行双机调试
    微软 Windows Intune 云托管服务试用
    如何安装从 Windows Update 目录下载的驱动程序
    启用特殊池解读 0x000000c5 蓝屏
    C# 配置文件修改的新方法
    Ribbon默认服务器功能区自定义位置
    Update list item using Linq to SharePoint
    TroubleShoot:分配对象查询的问题
    TroubleShoot:C#操作Excel的几个问题
  • 原文地址:https://www.cnblogs.com/pchmonster/p/4727553.html
Copyright © 2011-2022 走看看