区分Request.Params、Request.QueryString、Request.Form

https://blog.csdn.net/shiqijiamengjie/article/details/47125125
 
Request.Params、Request.QueryString、Request.Form都可以获取客户端提交的数据。他们之间有什么不同呢?

Request.Params

既可以获取以GET方式提交的数据,又可以获取以POST方式提交的数据(优先获取GET方式提交的数据)

Request. QueryString

只能获取以GET方式提交的数据

Request.Form

只能获取以POST方式提交的数据

 

Request.Params其实是一个集合,依次包括request.querystring、request.form、request.servervariables和request.cookies。

    Request.Params依次在QueryString、Form、ServerVariable以及Cookies中查找数据,首先在 QueryString 集合查找数据,如果在 QueryString找到数据,就返回数据;反之,就去 Form集合中查找数据,找到就返回,否则再往下一个集合查找数据。

   在使用这几种方式获得客户端提交的数据时,如果用错了,编译时不会出现任何错误,但运行的时候就会提示“未将对象引用设置到对象的实例”。所以,如果无法确定提交的数据是什么方式时,建议使用Request或Request.Params获取数据。但是,由于这两种方式需要从集合中一一查找数据,很耗费时间,为了提高效率,减少无谓的搜索时间,同时也是为了程序的规范,建议大家还是用Request.集合的方式更好一点。

   凡事都有两面性,学会取舍是关键。

知识拓展:

request对象有五个集合:

QueryString
用以获取客户端附在url地址后的查询字符串中的信息。

例如:stra=Request.QueryString ["strUserld"]

Form
用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

例如:stra=Request.Form["strUserld"]

Cookies
用以获取客户端的Cookie信息。

例如:stra=Request.Cookies["strUserld"]

ServerVariables
用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址

ClientCertificate
用以获取客户端的身份验证信息

例如:stra=Request.ClientCertificate["VALIDFORM"]

 

posted @ 2020-02-10 10:09  kelelipeng  阅读(267)  评论(0编辑  收藏  举报