ASP中Request对象获取客户端数据的顺序(容易忽略)

作者:无名 - ASP基础 -
在ASP中Request对象是获取客户端提交数据的一个很重要的对象,大家对他也是非常熟悉了。虽然如此,还是经常有人问我下面的几种写法有什么不同,到底应该怎么写?


strMessage = Request("msg")
strMessage = Request.Form("msg")

而且,我也看过好多人写的代码,一律都是Request("")的写法,当然这样的写法并没有什么错。
只是大家应该注意
Request对象有几个集合来获取客户端提交的数据,一般常用的是QueryString,Form和ServerVariables。
而不管对于哪种集合其实都是可以通过Request("")这样直接取得的,这里就有一个问题,如果
Get方式和Post方式提交了同样的一个变量,比如username=cqq,那么你用Request("username")
取出来的到底是Get过来的数据还是Post过来的数据呢?

所以,问题到了这里,大家就应该想到了, Request从这几个集合取数据是有顺序的,从前到后
的顺序依次是 QueryString,Form,最后是ServerVariables。Request对象按照这样的顺序依次搜索
这几个集合中的变量,如果有符合的就中止,后面的就不管了。 所以上面的例子Request("username")
取到的实际是Get方法提交的数据。

所以为了提高效率,减少无谓的搜索时间,同时也是为了程序的规范,建议大家还是用Request.集合的
方式更好一点,比如Request.Form("username")。

下面是一个测试例子,提交以后,大家可以直接在地址后面加上 username=aaa 来测试:

<%
If  request("submit")<>"" then
 Response.Write "直接取:"& Request("username") & "<br>"
 Response.Write "取Get:" & Request.QueryString("username") & "<br>"
 Response.Write "取Post:" & Request.Form("username") & "<br>"
End if
%>
<form name=form1 action="" method=post>
<input type=test name="username" value="postuser">
<input type=submit name="submit" value="test">
</form>

IT人知识库 该篇知识地址:http://www.itpeo.net/12728/371079.html





几个常用的ASP函数

========取得带端口的URL,推荐使用================  Function G... ...

ASP操作Excel技术总结

目录  一、 环境配置  二、 ASP对Excel的基本操作  三、&... ...

显示在线人数

<%NowUrl=request.servervariables("HTTP_REFERER")UserName ... ...

生成静态页大全[ASP/PHP/ASPX]

ASP生成静态网页的方法   随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更... ...

让ASP搭配MYSQL

让ASP搭配MYSQL 所需要工具    mysql-4.1.11-win32  ... ...

E-mail表单递交

<HTML><HEAD><META http-equiv='Content-Type' c... ...

替换数据库内容

<%'####################################'替换数据库内容 lamking 2... ...

怎么远程调用ACCESS数据库[要求加精!!]

使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)。分服务器和客户端两部分,服务器可以多... ...

无组件生成缩略图

网上有不少生成缩略图的ASP组件。若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少。心晴不才,结合网上资源写... ...

多附件上传组件演示

table{ FILTER: progid:DXImageTransform.Microsoft.Shadow(... ...

ASP连接11种数据库语法总结

经常使用到有关数据库的操作。包括连接代码、SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用... ...

asp中Byval与Byref的区别

文件名称: ByVal.asp ByRef.asp 具体代码: <%Sub TestMain()... ...

asp组件编写准备工作

最近在尝试用组件写asp,一些心得如下,不对之处请指正 经常要重启IIS,所以需要一个批处理的文件,将下面两行代码存为x... ...

保证asp叶面一定不会出现乱码 UTF8

保证asp叶面一定不会出现乱码的代码应该是这样的:(假定是UTF-8的叶子) <%@ CODE... ...

经典的分页完整程序+注释

在前面我们已经给大家讲了分页程序,在这里再给大家提供一个,分析一下也许有新的收获. 代码如下:<% '以下程序是... ...

vbcrlf的意思

常数         &nbs... ...

js+asp总结

一直在用JS写ASP,也不是特别原因,只是当初学的是JS,后来学ASP时知道ASP也可以用JS写,就没去学VBS.前几个... ...

解决rs.absolutepage=-1的问题

有时候在做asp的分页程序的时候会遇到无法分页的情况,就试着把rs.absolutepage打印出来结果却一直为-1。 ... ...

ASP实现URL编码

URL编码是指为了将信息通过URL进行传输,所以必须将某些含有特殊意义的字符进行替换的一种编码方式,在asp中我们都知道... ...

asp错误的几种处理方式

简单介绍 ASP是非常简单的,以至于许多的开发者不会去思考错误处理,正确处理错误能够让你的应用程序更加合理。我看到过很多... ...