當前位置:首頁 > 建站常識 > 列表

request.form和(hé)request.querystring的(de)區(qū)别

點擊:時(shí)間:2018/12/1關鍵詞:上海網站設計哪家強?
asp中獲取傳遞的(de)參數,一般用(yòng)request或者用(yòng)request成員(yuán)函數request.form,兩種方式都可(kě)以獲取頁面表單傳遞過來(lái)的(de)參數值,一直沒留意兩種方法有什(shén)麽區(qū)别,我一般喜歡用(yòng)request("abc")這(zhè)樣的(de)形式,簡單明(míng)了(le)嘛。最近修改了(le)一些kingc

asp中獲取傳遞的(de)參數,一般用(yòng)request或者用(yòng)request成員(yuán)函數request.form,兩種方式都可(kě)以獲取頁面表單傳遞過來(lái)的(de)參數值,一直沒留意兩種方法有什(shén)麽區(qū)别,我一般喜歡用(yòng)request("abc")這(zhè)樣的(de)形式,簡單明(míng)了(le)嘛。

最近修改了(le)一些kingcms的(de)代碼,其中有一段代碼是用(yòng)request.form("abc")這(zhè)樣的(de)形式獲取傳遞的(de)參數,可(kě)我在地址欄輸入傳遞 的(de)參數無論如何也(yě)無法通(tōng)過這(zhè)段代碼獲取,仔細看了(le)一下(xià),才發現,是由于request和(hé)request.form的(de)不同機制造成的(de)。

首先request本身是一個(gè)系統的(de)靜态對(duì)象,本身也(yě)可(kě)以作爲數組調用(yòng),比如request("abc")就是獲取request數組中鍵 值"abc"對(duì)應的(de)值,而這(zhè)個(gè)數組又不是固定的(de),而是多(duō)個(gè)數組的(de)集合,其中包含了(le) (QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables )這(zhè)幾個(gè)服務器變量 數組的(de)值,也(yě)就是說,通(tōng)過request可(kě)以依次遍曆這(zhè)幾個(gè)數組并返回對(duì)應的(de)值,使用(yòng)起來(lái)很是方便,一勞永逸。

而request.form這(zhè)個(gè)request的(de)成員(yuán)函數就不是那麽寬泛的(de)取值了(le),僅僅是從form數組中取值,也(yě)就是頁面表 單

标簽的(de)輸入單元(比如傳遞過來(lái)的(de)值。那麽通(tōng)過form就無法獲取鏈接字符串 中以index.asp?abc=123這(zhè)樣的(de)形式傳遞過來(lái)的(de)參數了(le)。


還(hái)有一種方法是request.QueryString("abc")這(zhè)種形式,可(kě)以獲取QueryString 鏈接字符串傳遞的(de)參數了(le)。

以http的(de)幾種傳遞數據機制來(lái)說,這(zhè)三種方法可(kě)以這(zhè)樣區(qū)分(fēn)。request.form可(kě)以獲取以post方式提交的(de)數據,requst.querystring可(kě)以獲取以get方法提交的(de)數據,而request則是可(kě)以同時(shí)獲取兩種方法傳遞的(de)數據。

按照(zhào)傳遞數據量來(lái)說,request.form可(kě)以傳遞不限大(dà)小的(de)數據,而request.querystring隻能傳遞2k的(de)數據量。

按照(zhào)速度來(lái)說,request.qeurystring 會略快(kuài)于request.form

最方便最好用(yòng)的(de)嘛,哈哈,就是request本身來(lái)的(de)直接了(le),不管怎麽傳遞的(de)數據都能獲取,性能嘛,略有下(xià)降,不過對(duì)于現在的(de)網絡和(hé)計算(suàn)機來(lái)說,可(kě)以忽略不計,所以我最喜歡用(yòng)request("abc")這(zhè)樣的(de)寫法

總結;

1.Request.form方法,它是用(yòng)來(lái)接收表單變量的(de)(post 方法)

2.Request.QueryString方法, 它是接收URL參數的(de) (get 方法)

3.Request對(duì)象也(yě)可(kě)以不指明(míng)具體使用(yòng)QueryString或是form方法,如request("變量"),因爲它能自動識别,不過還(hái)是 指明(míng)爲好,否則,要它自己判斷也(yě)得(de)花些微時(shí)間,影(yǐng)響程序執行效率。Request:包含以上兩種方式(優先獲取GET方式提交的(de)數據),它會在 QueryString、Form、ServerVariable中都搜尋一遍。

兩者除了(le)接收方法不同外,還(hái)有傳遞數據量大(dà)小的(de)問題,request.form方法能接收的(de)數據沒有限制,而 request.QueryString隻能接收數據量小于2KB數據,當然後者的(de)執行速度要比前者快(kuài)。一般往數據庫請求查詢時(shí)用(yòng) request.QueryString方法,因爲查詢時(shí)隻不過那麽幾個(gè)關鍵詞,沒有必要用(yòng)request.form方法而導緻查詢速度變慢(màn)。另 外,request.QueryString方法還(hái)會把數據信息顯示在客戶端浏覽器地址欄中,安全性較差。 request.form方法不存在上述問 題,因此大(dà)量被應用(yòng)在多(duō)個(gè)文本域提交數據和(hé)用(yòng)戶登陸的(de)場(chǎng)合

預約建站
免費提供網站優化(huà)
領取關鍵詞