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

来源:互联网 发布:fifaonline3数据库最新 编辑:程序博客网 时间:2024/05/03 21:30

   Request.ParamsRequest.QueryStringRequest.Form都可以获取客户端提交的数据。他们之间有什么不同呢?

Request.Params

Request. QueryString

Request.Form

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

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

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

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

如图:

                             

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

   在使用这几种方式获得客户端提交的数据时,如果用错了,编译时不会出现任何错误,但运行的时候就会提示“未将对象引用设置到对象的实例”。所以,如果无法确定提交的数据是什么方式时,建议使用RequestRequest.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"]

 

0 0
原创粉丝点击