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

这样提交的信息就可以通过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 后,显示如下:

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

我们也可以尝试着改写 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 后并“提交查询”后结果如下:

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
%>
…
第一次运行该页面,会显示

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

ServerVariables集合
使用这个集合,不仅可以获得客户端向服务器端发送请求的一些信息,还可以获得服务端的一些信息。
下面这个例子 (ShowAllServerVariables.asp),将显示出所有的服务器变量信息,主要代码如下:
...
<%
Dim x
For Each x In Request.ServerVariables
Response.Write("<p><b>【" & x & "】</b>")
Response.Write(Request.ServerVariables(x) & "</p>")
Next
%>
...
显示效果如下图:

部分常用服务器环境变量列表:
| 名称 | 作用 |
| 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集合
包含了存储在客户证书中的所有的字段值,这个集合不常用。某些对于安全性较高的场合试用,支付类网站。
示例代码下载
ASP入门(八)-Request对象的更多相关文章
- ASP入门(九)-Request对象小案例
我们将制作一个能够记住访问者姓名的页面,在这个小案例中,你将学会如何使用Request对象的Cookies.Form以及ServerVariables集合的值,还可以学习到如何使用Response对象 ...
- Asp.net内置对象之Request对象(概述及应用)
Request对象主要用于获取来自客户端的数据,如用户填入表单的数据.保存在客户端的Cookie等,本文将围绕Request对象,讲解其的主要作用:读取窗体变量.读取查询字符串变量.取得Web服务器端 ...
- asp.net中Response对象鱼Request对象
在asp.net中Response与Request对象是两个常用的对象,虽然他们长得有点像,但是作用却是截然不同,我们来看一下他们他们都有哪些不同. 一.Response对象主要作用:像浏览器输出信息 ...
- 初识 Asp.Net内置对象之Request对象
Request对象 Request对象用于检索从浏览器向服务器所发送的请求信息.它提供对当前页请求的访问,包括标题,Cookie,客户端证书等等.它也与HTTP协议的请求消息对应. Request对象 ...
- ASP.NET的内置对象 —— Request 对象
Request 对象最大的用途在于提交表单信息. (可获取页面间传递的值.客户端的 IP 地址等) 3.2.2 获取页面间传送的值 获取页面传送参数值是 Request 对象最广泛的应用之一. ASP ...
- ASP.NET之Request和Response对象
经过了牛腩新闻公布系统和html的学习对B/S开发的流程有了些理解.前面尽管用到了非常多知识.但对制作网页仅仅能说知其然.当学到asp.net视频中的解说才干够说開始知其所以然了. 今天来说说clie ...
- ASP.NET内置对象之Request传递请求对象
Request对象是HttpRequest类的一个实例,Request对象用于读取客户端在Web请求期间发送的HTTP值.Request对象常用的属性如下所示. q QueryString: ...
- ASP.NET 内置对象涉略
一.ASP.NET中内置的常用对象的介绍 本文列举了ASP.NET 的八个内置对象,其中前五个是比较常用的. 1.Response Response 对象用于从服务器向用户发送输出的结果. Write ...
- 18第一章 ASP.Net内建对象
第一章 ASP.Net内建对象 第一章 ASP.Net内建对象 ASP.Net为保持用户的数据和信息,内建了许多对象,包括Application.Response.Requ ...
- Asp.Net WebApi核心对象解析(下篇)
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...
随机推荐
- sqlserver 2012 查询时提示“目录名称无效”
重装系统或者用360等软件清理了相应的临时文件导致解决:在运行中输入 %temp% 回车,会跳出找不到路径的提示,然后到提示的目录建没有找到的目录文件夹即可.
- Golang Vendor 包机制 及 注意事项
现在的 Go 版本是 1.8,早在 1.5 时期,就有了 Vendor 包机制,详情可查看博文:“理解 Go 1.5 vendor”. 遇到的问题 个人在使用 Glide 管理 Vendor 包时(附 ...
- .Net Discovery 系列之一--string从入门到精通(上)
string是一种很特殊的数据类型,它既是基元类型又是引用类型,在编译以及运行时,.Net都对它做了一些优化工作,正式这些优化工作有时会迷惑编程人员,使string看起来难以琢磨,这篇文章分上下两章, ...
- Enable WiX project in Visual Studio 2013
I have a VS 2012 solution with WiX Installer projects. However, when I open the solution in VS 2013 ...
- 再谈vc发送键盘、组合键消息
关于向Windows窗口发送Alt组合键的问题,这个真是经典问题啊,在网上找了一下,问的人N多,方法差不多, 但就是没有很好解决问题. 之前找到一个能正确发送的code:(Alt+A) PostMes ...
- Spring Boot 2.0 + zipkin 分布式跟踪系统快速入门
原文:https://www.jianshu.com/p/9bfe103418e2 注意 Spring Boot 2.0之后,使用EnableZipkinServer创建自定义的zipkin服务器已经 ...
- dispatch_group_async 使用详解
dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作.这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了.下面是一段例子 ...
- iOS越狱知多少?
著名iOS黑客团队Evad3rs上周上线了evasi0n 官网,用于展示他们破解iOS 6 和iOS 6.1 系统的进度.据官网显示,其越狱工具evasi0n已正式上线,支持iPhone.iPad等 ...
- 教你调用数据库读取短信 记事本 通讯录文件,让ios5的短信恢复到ios4
由于高版本的ios固件向下恢复到低版固件时无法通过itunes恢复备份,所以一些数据,比如SMS需要通过提取文件的方式单独进行备份恢复特别是ios5的短信,之前很是头痛,直接将文件恢复到指定目录修改权 ...
- ExtJS动态设置表头
if(document.getElementById("lxdj_radio").checked){ colQd = new Ext.grid.ColumnModel(colMAr ...