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"],對于要求安全驗證的網站,返回有效起始日期。