导航首页 » 技术教程 » Jquery中request和request.form和request.querystring的区别
全站头部文字 我要出现在这里
Jquery中request和request.form和request.querystring的区别 369 2024-03-19   

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"],对于要求安全验证的网站,返回有效起始日期。



!!!站长长期在线接!!!

网站、小程序:定制开发/二次开发/仿制开发等

各种疑难杂症解决/定制接口/定制采集等

站长微信:lxwl520520

站长QQ:1737366103