论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > asp教程
Tag:入门,文摘,实例,技巧,iis,表单,对象,上传,数据库,记录集,session,cookies,存储过程,注入,分页,安全,优化,xmlhttp,fso,jmail,application,防盗链,stream,组件,md5,乱码,缓存,加密,验证码,算法,ubb,正则表达式,水印,,日志,压缩,url重写,控件,函数,破解,触发器,socket,ADO,初学,聊天室,留言本,视频教程

浅谈ASP中Request对象获取客户端数据的顺序

文章类别:asp | 发表日期:2008-10-5 20:48:57

/**
描述:在使用ASP Request对象时需要注意的小问题
作者:慈勤强
Email : cqq1978@yeah.net
**/

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

视频教程列表
文章教程搜索
 
Asp推荐教程
Asp热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058