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

2016-01-29 18:45 10 1 收藏

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

【 tulaoshi.com - ASP 】

 

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

在ASP中Request对象是获取客户端提交数据的一个很重要的对象,大家对他也是非常熟悉了。
虽然如此,还是经常有人问我下面的几种写法有什么不同,到底应该怎么写?
strMessage = Request("msg")
strMessage = Request.Form("msg")

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

所以,问题到了这里,大家就应该想到了, 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

 

来源:https://www.tulaoshi.com/n/20160129/1507123.html

延伸阅读
标签: Web开发
通过WMI来实现获取客户端计算机硬件及系统信息: 1//系统信息获取 2function getSysInfo(){ 3 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 4 var service = locator.ConnectServer("."); 5 //CPU信息 6 var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor&qu...
标签: ASP
  先贴一篇较简单的用ASP+RDS客户端参生报表 此文希望能进精华篇 下一回贴一篇较复杂的 说明:(若提示ActiveX 元件无法参生 RDS.DataSpace) IE需设置安全选项 操作:菜单工具-INTERNET选项-安全性-自定义 设置 起始但ActiveX不标示为安全-开启 <html <head <META content="text/html; charset=gb2312" http-equiv=...
标签: ASP
Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。 集合 Request.ClientCertificate(key[SubField]) 所有客户证书的信息的集合。对于Key,该集合具有如下的关键字: Subject 证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。 Issuer 证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所...
标签: Web开发
ASP(Active Server Pages)技术的Session对象用于存储用户在对话期间的私有信息。当前用户的Session对象中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问,因此在用ASP开发网络应用程序时,可以利用Session对象保存和跟踪用户的状态信息。 Session对象有一个十分重要的属性:Timeout,它用于设置在会话资源被释放前,...
至今我们还没有涉及到客户部分的操作,现在就讨论一下。客户端通过调用服务器端的GetArray()方法来开始整个处理。客户端将会接收我们在服务器创建的安全对象。客户端的程序则负责将这块字节流变成为一个有效的C++对象。以下摘录了做这部分工作的客户端代码: // create COM smart pointer from CLSID string IBlobDataP...

经验教程

770

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部