首頁  >  文章  >  web前端  >  Jquery中request和request.form和request.querystring的差異_jquery

Jquery中request和request.form和request.querystring的差異_jquery

WBOY
WBOY原創
2016-05-16 15:29:311281瀏覽

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&#63;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"],對於要求安全驗證的網站,傳回有效起始日期。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn