asp獲取URL參數(shù)的幾種方法分析總結(jié) 原創(chuàng)
原創(chuàng) 更新時(shí)間:2008年06月15日 18:47:26 原創(chuàng) 作者:
asp獲取當(dāng)前網(wǎng)址,或獲取當(dāng)前頁面的所以參數(shù)
需要用到這個(gè)功能,沒怎么測試呢,測試后給具體代碼
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:簡單,得不到參數(shù),只有一個(gè)虛擬路徑
GetUrl =request("url") '這個(gè)因?yàn)槲覀儧]有url=什么字樣所以直接pass掉
方法二:得到整個(gè)URL,得到參數(shù)
'得到當(dāng)前頁面的地址
Function GetUrl()
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("URL")
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
GetUrl = strTemp
End Function
經(jīng)測試這個(gè)代碼得到的路徑為:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
方法二:得到虛擬路徑,得到參數(shù)
Private Function GetUrl()
Dim ScriptAddress,M_ItemUrl,M_item
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得當(dāng)前地址
M_ItemUrl = ""
If (Request.QueryString <> "") Then
ScriptAddress = ScriptAddress & "?"
For Each M_item In Request.QueryString
If M_item = "page_num" Then Exit for '此處的作用就是過濾掉Page_num這個(gè)頁次的參數(shù)(該參數(shù)是在page_turn.asp中自行設(shè)置的,根據(jù)個(gè)人設(shè)定而變),否則每次翻頁都會(huì)疊加這個(gè)參數(shù),雖然不影響功能,但總歸不太好吧~~
If InStr(page,M_Item)=0 Then
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&""))
else
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&"")) & "&"
End If
Next
Else
ScriptAddress = ScriptAddress & "?"
end if
GetUrl = ScriptAddress & M_ItemUrl
End Function
上面的代碼得到的地址為
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
基本上差不多
如果只是為了得到?號(hào)后面的東西,我們可以用下面的代碼
response.write replace(request.querystring,".html","")
得到的就是Param-VR52tmx3syn03777是不是滿足了我們的需要了呢
PS:上面的所有情況只是針對(duì)純asp,如果結(jié)合urlrewrite的話,功能會(huì)有所增強(qiáng),搜索的友好型,也會(huì)加強(qiáng)
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:簡單,得不到參數(shù),只有一個(gè)虛擬路徑
復(fù)制代碼 代碼如下:
GetUrl =request("url") '這個(gè)因?yàn)槲覀儧]有url=什么字樣所以直接pass掉
方法二:得到整個(gè)URL,得到參數(shù)
復(fù)制代碼 代碼如下:
'得到當(dāng)前頁面的地址
Function GetUrl()
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("URL")
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
GetUrl = strTemp
End Function
經(jīng)測試這個(gè)代碼得到的路徑為:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
方法二:得到虛擬路徑,得到參數(shù)
復(fù)制代碼 代碼如下:
Private Function GetUrl()
Dim ScriptAddress,M_ItemUrl,M_item
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得當(dāng)前地址
M_ItemUrl = ""
If (Request.QueryString <> "") Then
ScriptAddress = ScriptAddress & "?"
For Each M_item In Request.QueryString
If M_item = "page_num" Then Exit for '此處的作用就是過濾掉Page_num這個(gè)頁次的參數(shù)(該參數(shù)是在page_turn.asp中自行設(shè)置的,根據(jù)個(gè)人設(shè)定而變),否則每次翻頁都會(huì)疊加這個(gè)參數(shù),雖然不影響功能,但總歸不太好吧~~
If InStr(page,M_Item)=0 Then
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&""))
else
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&"")) & "&"
End If
Next
Else
ScriptAddress = ScriptAddress & "?"
end if
GetUrl = ScriptAddress & M_ItemUrl
End Function
上面的代碼得到的地址為
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
基本上差不多
如果只是為了得到?號(hào)后面的東西,我們可以用下面的代碼
復(fù)制代碼 代碼如下:
response.write replace(request.querystring,".html","")
得到的就是Param-VR52tmx3syn03777是不是滿足了我們的需要了呢
PS:上面的所有情況只是針對(duì)純asp,如果結(jié)合urlrewrite的話,功能會(huì)有所增強(qiáng),搜索的友好型,也會(huì)加強(qiáng)
相關(guān)文章
asp畫中畫廣告插入在每篇文章中的實(shí)現(xiàn)方法
這篇文章主要介紹了asp畫中畫廣告插入在每篇文章中的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-01-01asp下讓數(shù)據(jù)庫在需要讀取的時(shí)候才打開
ASP實(shí)現(xiàn)讓數(shù)據(jù)庫連接僅在需要讀取數(shù)據(jù)庫時(shí)打開,我們有沒有辦法讓數(shù)據(jù)庫連接僅在需要讀取數(shù)據(jù)庫時(shí)才打開,不讀取時(shí)就沒有任何動(dòng)作呢,以下即提供這種思路,以求拋磚引玉。2008-06-06ASP 代碼出現(xiàn)80040e14錯(cuò)誤的解決方法
本文減淡概述了解決80040e14錯(cuò)誤的兩種方法。2009-04-04