request.querystring()、request()与request.form()

以前一直没注意request的取数据区别。今天遇到 页面post一个key ,用request.querystring("key") 却一直取不到值。立马查阅:

request本身是一个系统的静态对象,本身也可以作为数组调用,比如request("abc")就是获取request数组中键值"abc"对应的值,而这个数组又不是固定的,而是多个数组的集合,其中包含了(QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables )这几个服务器变量数组的值,也就是说,通过request可以依次遍历这几个数组并返回对应的。Request对象按照这样的顺序依次搜索这几个集合中的变量,如果有符合的就中止,后面的就不管了。

以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方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。

而我是用POST的方法发送数据给login.html,那么用request.querystring("key")是不行的了(他只能取GET),而要用request.from("key"),而如果还用request("key")他也能取到数据,但先检测querystring的值,但是速度就慢了.

又小白了一次、不过这样也好 又学习了

原文地址:https://www.cnblogs.com/richy/p/2740738.html