首页 > 代码库 > R?e?q?u?e?s?t?、?R?e?q?u?e?s?t?.?F?o?r?m?和?R?e?q?u?e?s?t?.?Q?u?e?r?y?S?t?r?i?n?g?的?区?别
R?e?q?u?e?s?t?、?R?e?q?u?e?s?t?.?F?o?r?m?和?R?e?q?u?e?s?t?.?Q?u?e?r?y?S?t?r?i?n?g?的?区?别
Request
、
Request.Form
和
Request.QueryString
的区别
request
本身是一个系统的静态对象,本身也可以作为数组调用,比如
request("abc")
就是获取
request
数组中键值
"abc"
对应的值,而这个数组又不是
固定的,而是多个数组的集合,其中包含了
(QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables )
这几个服务器
变量数组的值,
也就是说,
通过
request
可以依次遍历这几个数组并返回对应的
值,使用起来很是方便,一劳永逸。
而
request.form
这个
request
的成员函数就不是那么宽泛的取值了,仅仅是从
form
数组中取值,也就是页面表单
<form>
标签的输入单元
(
比如
<input
type=text >
传递过来的值。那么通过
form
就无法获取链接字符串中以
index.asp?abc=123
这样的形式传递过来的参数了。
还有一种方法是
request.QueryString("abc")
这种形式,
可以获取
QueryString
链
接字符串传递的参数了。
以
http
的几种传递数据机制来说,
这三种方法可以这样区分。
request.form
可以
获取以
post
方式提交的数据,
requst.querystring
可以获取以
get
方法提交的数
据,而
request
则是可以同时获取两种方法传递的数据。
按照传递数据量来说,
request.form
可以传递不限大小的数据,而
request.querystring
只能传递
2k
的数据量。
按照速度来说,
request.qeurystring
会略快于
request.form
最方便最好用的嘛,
request
本身来的直接了,不管怎么传递的数据都能获取,
性能嘛,
略有下降,
可忽略不计,
通用的可以使用
request("abc")
这样的写法。
Request.Form
:获取以
POST
方式提交的数据(接收
Form
提交来的数据);
Request.QueryString
:获取地址栏参数
(
以
GET
方式提交的数据
)
Request
:包含以上两种方式
(
优先获取
GET
方式提交的数据
)
,它会在
Query
String
、
Form
、
ServerVariable
中都搜寻一遍。
而且有时候也会得到不同的结果。
如果你仅仅是需要
Form
中的一个数据,
但是你使用了
Request
而不是
Request.Form
,那么程序将在
QueryString
、
ServerVariable
中也搜寻一遍。
如果正好你的
QueryString
或者
ServerVari
able
里面也有同名的项,你得到的就不是你原本想要的值了。
使用
Request
,
ASP
是以如下顺序进行搜索
:
1.QueryString
2.Form
3.Cookies
4.ClientCertificate
5.ServerVariables
如果在
QueryString
里也存在一个同
Form
里相同的变量名,
则不会返回
Form
里的值,而是
QueryString
的。
Request.form:
获取前台
form
表单以
POST
方式提交的数据
Request.QueryString :
获取地址栏参数
(
以
GET
方式提交的数据
)
Request:
包含以上两种方式
(
优先获取
GET
方式提交的数据
)
两者除了接收方法不同外,还有传递数据量大小的问题
:
Request.form
方法能接收的数据没有限制,
而
Request.QueryString
只能接
收数据量小于
2KB
数据,当然后者的执行速度要比前者快。
一般向数据库请求查询时用
request.QueryString
方法,
因为查询时只不过那
么几个关键词,没有必要用
request.form
方法而导致查询速度变慢。
另外,
request.QueryString
方法还会把数据信息显示在客户端浏览器地址栏
中,安全性较差。
request.form
方法不存在上述问题,
因此大量被应用在多个文本域提交数据和
用户登陆的场合。
request
对象也可以不指明具体使用
QueryString
或是
form
方法,如
request("
变量
")
,因为它能自动识别,
不过还是指明为好,
否则,
要它自己判断也得花些微小的访问时间,
影响程序执
行效率。