asp獲取URL參數(shù)的幾種方法分析總結(jié) 原創(chuàng)
原創(chuàng) 更新時間:2008年06月15日 18:47:26 原創(chuàng) 作者:
asp獲取當(dāng)前網(wǎng)址,或獲取當(dāng)前頁面的所以參數(shù)
需要用到這個功能,沒怎么測試呢,測試后給具體代碼
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:簡單,得不到參數(shù),只有一個虛擬路徑
GetUrl =request("url") '這個因?yàn)槲覀儧]有url=什么字樣所以直接pass掉
方法二:得到整個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)測試這個代碼得到的路徑為:
/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這個頁次的參數(shù)(該參數(shù)是在page_turn.asp中自行設(shè)置的,根據(jù)個人設(shè)定而變),否則每次翻頁都會疊加這個參數(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
基本上差不多
如果只是為了得到?號后面的東西,我們可以用下面的代碼
response.write replace(request.querystring,".html","")
得到的就是Param-VR52tmx3syn03777是不是滿足了我們的需要了呢
PS:上面的所有情況只是針對純asp,如果結(jié)合urlrewrite的話,功能會有所增強(qiáng),搜索的友好型,也會加強(qiáng)
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:簡單,得不到參數(shù),只有一個虛擬路徑
復(fù)制代碼 代碼如下:
GetUrl =request("url") '這個因?yàn)槲覀儧]有url=什么字樣所以直接pass掉
方法二:得到整個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)測試這個代碼得到的路徑為:
/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這個頁次的參數(shù)(該參數(shù)是在page_turn.asp中自行設(shè)置的,根據(jù)個人設(shè)定而變),否則每次翻頁都會疊加這個參數(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
基本上差不多
如果只是為了得到?號后面的東西,我們可以用下面的代碼
復(fù)制代碼 代碼如下:
response.write replace(request.querystring,".html","")
得到的就是Param-VR52tmx3syn03777是不是滿足了我們的需要了呢
PS:上面的所有情況只是針對純asp,如果結(jié)合urlrewrite的話,功能會有所增強(qiáng),搜索的友好型,也會加強(qiáng)
相關(guān)文章
asp畫中畫廣告插入在每篇文章中的實(shí)現(xiàn)方法
這篇文章主要介紹了asp畫中畫廣告插入在每篇文章中的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-01-01