ASP中Request對(duì)象獲取客戶端數(shù)據(jù)的順序(容易忽略)
更新時(shí)間:2006年08月25日 00:00:00 作者:
在ASP中Request對(duì)象是獲取客戶端提交數(shù)據(jù)的一個(gè)很重要的對(duì)象,大家對(duì)他也是非常熟悉了。雖然如此,還是經(jīng)常有人問我下面的幾種寫法有什么不同,到底應(yīng)該怎么寫?
strMessage = Request("msg")
strMessage = Request.Form("msg")
而且,我也看過好多人寫的代碼,一律都是Request("")的寫法,當(dāng)然這樣的寫法并沒有什么錯(cuò)。
只是大家應(yīng)該注意
Request對(duì)象有幾個(gè)集合來獲取客戶端提交的數(shù)據(jù),一般常用的是QueryString,Form和ServerVariables。
而不管對(duì)于哪種集合其實(shí)都是可以通過Request("")這樣直接取得的,這里就有一個(gè)問題,如果
Get方式和Post方式提交了同樣的一個(gè)變量,比如username=cqq,那么你用Request("username")
取出來的到底是Get過來的數(shù)據(jù)還是Post過來的數(shù)據(jù)呢?
所以,問題到了這里,大家就應(yīng)該想到了, Request從這幾個(gè)集合取數(shù)據(jù)是有順序的,從前到后
的順序依次是 QueryString,Form,最后是ServerVariables。Request對(duì)象按照這樣的順序依次搜索
這幾個(gè)集合中的變量,如果有符合的就中止,后面的就不管了。 所以上面的例子Request("username")
取到的實(shí)際是Get方法提交的數(shù)據(jù)。
所以為了提高效率,減少無謂的搜索時(shí)間,同時(shí)也是為了程序的規(guī)范,建議大家還是用Request.集合的
方式更好一點(diǎn),比如Request.Form("username")。
下面是一個(gè)測(cè)試?yán)?,提交以后,大家可以直接在地址后面加?nbsp;?username=aaa 來測(cè)試:
<%
If request("submit")<>"" then
Response.Write "直接取:"& Request("username") & "<br>"
Response.Write "取Get:" & Request.QueryString("username") & "<br>"
Response.Write "取Post:" & Request.Form("username") & "<br>"
End if
%>
<form name=form1 action="" method=post>
<input type=test name="username" value="postuser">
<input type=submit name="submit" value="test">
</form>
strMessage = Request("msg")
strMessage = Request.Form("msg")
而且,我也看過好多人寫的代碼,一律都是Request("")的寫法,當(dāng)然這樣的寫法并沒有什么錯(cuò)。
只是大家應(yīng)該注意
Request對(duì)象有幾個(gè)集合來獲取客戶端提交的數(shù)據(jù),一般常用的是QueryString,Form和ServerVariables。
而不管對(duì)于哪種集合其實(shí)都是可以通過Request("")這樣直接取得的,這里就有一個(gè)問題,如果
Get方式和Post方式提交了同樣的一個(gè)變量,比如username=cqq,那么你用Request("username")
取出來的到底是Get過來的數(shù)據(jù)還是Post過來的數(shù)據(jù)呢?
所以,問題到了這里,大家就應(yīng)該想到了, Request從這幾個(gè)集合取數(shù)據(jù)是有順序的,從前到后
的順序依次是 QueryString,Form,最后是ServerVariables。Request對(duì)象按照這樣的順序依次搜索
這幾個(gè)集合中的變量,如果有符合的就中止,后面的就不管了。 所以上面的例子Request("username")
取到的實(shí)際是Get方法提交的數(shù)據(jù)。
所以為了提高效率,減少無謂的搜索時(shí)間,同時(shí)也是為了程序的規(guī)范,建議大家還是用Request.集合的
方式更好一點(diǎn),比如Request.Form("username")。
下面是一個(gè)測(cè)試?yán)?,提交以后,大家可以直接在地址后面加?nbsp;?username=aaa 來測(cè)試:
<%
If request("submit")<>"" then
Response.Write "直接取:"& Request("username") & "<br>"
Response.Write "取Get:" & Request.QueryString("username") & "<br>"
Response.Write "取Post:" & Request.Form("username") & "<br>"
End if
%>
<form name=form1 action="" method=post>
<input type=test name="username" value="postuser">
<input type=submit name="submit" value="test">
</form>
您可能感興趣的文章:
- javascript asp教程第八課--request對(duì)象
- Asp.net內(nèi)置對(duì)象之Request對(duì)象(概述及應(yīng)用)
- Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)
- Asp.net response對(duì)象與request對(duì)象使用介紹
- ASP.NET 使用application與session對(duì)象寫的簡(jiǎn)單聊天室程序
- ASP.NET中Application全局對(duì)象用法實(shí)例淺析
- ASP.NET中使用Application對(duì)象實(shí)現(xiàn)簡(jiǎn)單在線人數(shù)統(tǒng)計(jì)功能
- ASP的Error對(duì)象知識(shí)簡(jiǎn)析
- ASP基礎(chǔ)知識(shí)Command對(duì)象講解
- ASP基礎(chǔ)入門第六篇(ASP內(nèi)建對(duì)象Request)
相關(guān)文章
6行代碼實(shí)現(xiàn)無組件上傳(author:stimson)
6行代碼實(shí)現(xiàn)無組件上傳(author:stimson)...2007-01-01ASP上傳圖片功能的又一實(shí)現(xiàn)(OLE對(duì)象)
ASP上傳圖片功能的又一實(shí)現(xiàn)(OLE對(duì)象)...2007-01-01ASP 中 DateDiff 函數(shù)詳解 主要實(shí)現(xiàn)兩日期加減操作
ASP 中 DateDiff 函數(shù)詳解 主要實(shí)現(xiàn)兩日期加減操作...2007-11-11利用ASP發(fā)送和接收XML數(shù)據(jù)的處理方法
因?yàn)橐鲆苿?dòng)夢(mèng)網(wǎng)WAP的一些接口,所以要用到這種方式,接下來會(huì)有ASP.net版本的,這個(gè)是ASP版本的,利用了MSXML2.XMLHTTP對(duì)像2006-06-06asp下連接數(shù)據(jù)庫(kù) ASP鏈接數(shù)據(jù)庫(kù)字符串大全總結(jié)
asp下連接數(shù)據(jù)庫(kù) ASP鏈接數(shù)據(jù)庫(kù)字符串大全總結(jié)...2007-11-11FileSystem對(duì)象常用的文件操作函數(shù)有哪些?
FileSystem對(duì)象常用的文件操作函數(shù)有哪些?...2006-06-06