asp入门

ASP入门(八)-Request对象

时间:2024年03月22日 信息来源:本站原创 点击: 加入收藏 】【 字体:

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,如下:

ASP入门(八)-Request对象

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

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

FormGet.html 关键代码如下:

ASP入门(八)-Request对象

<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>…

ASP入门(八)-Request对象

get.asp 关键代码如下:

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

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

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

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

post.asp 关键代码如下:

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象


Cookies集合

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

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

ASP入门(八)-Request对象

<%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") = numVisitsEnd If%>…

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象


ServerVariables集合

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

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

ASP入门(八)-Request对象

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

ASP入门(八)-Request对象

显示效果如下图:

ASP入门(八)-Request对象

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

名称作用
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


上一篇:ASP入门(七)-Response小案例
下一篇:ASP入门(九)-Request对象小案例
(作者:佚名 编辑:admin)

我有话说

新文章

荐文章

门文章