Jquery中request和request.form和request.querystring的区别
作者:ChrisMurphy
Request.Form是获取以POST方式提交的表单数据;
Request.QueryString主要是获取地址栏参数或者以Get方式提交的数据
而Request则包含以上两种方式,会在Request.QueryString和Request.Form中都查询一遍变量。但是优先获取GET方式提交的数据,即Request.QueryString
Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。
而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在 QueryString、ServerVariable中也搜寻一遍。
如果正好你的QueryString或者ServerVariable里面也有同名 的项,你得到的就不是你原本想要的值了。
request.querystring 是用来接收地址里面?后面的xx=xx的内容
而request.form 是用来接收表单递交来的数据
例如 request("offline")
就无论采用的是以上哪种方法的字段值都可以读取了
request.form是指用form递交过来的数据。而request.querystring则是指用URL递交过来的。你用的是login.asp?offline=true,这个当然是URL递交的啦。
Request.Form和Request.QueryString两个接收参数来源不同,前者是接收从表单Form来的参数,后者是从URL来的参数。
你这有这一句logon.asp?offline=true这是URL的传递参数。
如果要用Request.Form()的话,那页面至少得有个表单,比如:
<form name=form1 method=post action=logon.asp> <input type=text name=user value=""> </form>
这样在提交过表单后,就可以用Request.Form("user")得到这个文本框传递过来得数值。
request.querystring和request.form的区别 request.querystring是用post方法读取的 不安全 request.form是用get方法读取的 form表单中的method中看你是get还是post <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> </head> <body> <p> <% if request.querystring("offline")="true" then session.Abandon() response.Redirect("login1.htm") end if %> 欢迎进入:<%=request.Form("user")%></p> <p>当前联机人数为:</p><%=application("onlinenum")%> <p><a href=login.asp?offline=true>离开</a></p> </body> </html>
总结;
1.Request.form方法,它是用来接收表单变量的(post 方法)
2.Request.QueryString方法, 它是接收URL参数的 (get 方法)
3.Request对象也可以不指明具体使用QueryString或是form方法,如request("变量"),因为它能自动识别,不过还是 指明为好,否则,要它自己判断也得花些微时间,影响程序执行效率。Request:包含以上两种方式(优先获取GET方式提交的数据),它会在 QueryString、Form、ServerVariable中都搜寻一遍。
两者除了接收方法不同外,还有传递数据量大小的问题,request.form方法能接收的数据没有限制,而 request.QueryString只能接收数据量小于2KB数据,当然后者的执行速度要比前者快。一般往数据库请求查询时用 request.QueryString方法,因为查询时只不过那么几个关键词,没有必要用request.form方法而导致查询速度变慢。另 外,request.QueryString方法还会把数据信息显示在客户端浏览器地址栏中,安全性较差。 request.form方法不存在上述问 题,因此大量被应用在多个文本域提交数据和用户登陆的场合
ps:get和post的区别
get方法把参数及参数值暴露给访客,所以是不安全的。而且url传送的参数长度有限,但便捷。
post方法传送的参数长度可以很大,而且参数及参数值不被访客所看到。
总结:
在使用request("Reportdate")读取传递的数据“Reportdate”对应的值的时候,无论是get方式还是post方式传送的参数都可以读到,原因是它默认先使用request.querystring读取然后用request.form读取,也就是,做了两遍读取的操作,速度自然会慢一些,也不安全。
例子:
public string ReportDate { get { return Request.QueryString["reportDate"]; } }
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"],对于要求安全验证的网站,返回有效起始日期。