首页 > 代码库 > 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("

变量

")

,因为它能自动识别,

 

不过还是指明为好,

否则,

要它自己判断也得花些微小的访问时间,

影响程序执

行效率。