閱讀259 返回首頁    go 技術社區[雲棲]


Request、Request.Params、Request.QueryString、Request.form的區別

Request.Params、Request.QueryString、Request.Form都可以獲取客戶端提交的數據。他們之間有什麼不同呢?

Request方法

Request:Request["id"]是一個複合功能讀取函數。它從幾個集合取數據是有順序的,從前到後的順序依次是:QueryString > Form > Cookies > ClientCertificate > ServerVariables,也即是一般get比post優先級高些。Request對象按照這樣的順序依次搜索這幾個集合中的變量,如果有符合的就中止,後麵的就不管了

做為一個優秀的程序員要養成好的習慣,記得在request後麵加上集合的名字

<form method="post" action="xxx.aspx?id=2">
<input  type="text" name="id">
</form>

當我們提交這個表單時同時傳遞了兩個id值,一個是form裏input的id它以post方式提交,而另一個是action裏的url傳遞了一個以get方式提交的id。那麽我們如果用Request("id")得到的是哪一個值?就得據其優先級才知道,一般應該是get比post優先級高些

Request對象可以不指明具體使用QueryString或是form方法,如request("變量"),因為它能自動識別,不過還是指明為好,否則,要它自己判斷也得花些微時間,影響程序執行效率

Request.Params方法

Request.Params是所有post和get傳過來的值的集合它依次包括request.QueryString、request.Form、request.cookies和request.ServerVariable

Request.QueryString方法

Request.QueryString["id"] 隻能讀取通過地址欄參數傳遞過來的名為id的參數(以GET方式提交的數據),如果不存在名為id的地址欄參數Request.QueryString["id"]將會返回空

例如:

stra=Request.QueryString ["strUserld"]

Request.form方法

它是用來接收表單變量的(post 方法)

Request.QueryString和Request.form

Request.QueryString和Request.form除了接收方法不同外,還有傳遞數據量大小的問題,request.form方法能接收的數據沒有限製,而request.QueryString隻能接收數據量小於2KB數據,當然後者的執行速度要比前者快。一般往數據庫請求查詢時用request.QueryString方法,因為查詢時隻不過那麼幾個關鍵詞,沒有必要用request.form方法而導致查詢速度變慢。另外,request.QueryString方法還會把數據信息顯示在客戶端瀏覽器地址欄中,安全性較差。 request.form方法不存在上述問 題,因此大量被應用在多個文本域提交數據和用戶登陸的場合

最後更新:2017-05-23 17:02:48

  上一篇:go  任何人都可能成為網絡噴子 | 人機交互頂級會議CSCW最佳論文
  下一篇:go  想用R和Python做文本挖掘又不知如何下手?方法來了!