asp获取URL参数的几种方法分析总结
2018-09-06 11:39
需要用到这个功能,没怎么测试呢,测试后给具体代码
假如地址是:
方法一:简单,得不到参数,只有一个虚拟路径
复制代码 代码如下:
GetUrl=request(url)这个因为我们没有url=什么字样所以直接pass掉
方法二:得到整个URL,得到参数
复制代码 代码如下:
得到当前页面的地址
FunctionGetUrl()
OnErrorResumeNext
DimstrTemp
IfLCase(Request.ServerVariables(HTTPS))=offThen
strTemp=
Else
strTemp=
EndIf
strTemp=strTemp&Request.ServerVariables(SERVER_NAME)
IfRequest.ServerVariables(SERVER_PORT)<>80ThenstrTemp=strTemp&:&Request.ServerVariables(SERVER_PORT)
strTemp=strTemp&Request.ServerVariables(URL)
IfTrim(Request.QueryString)<>ThenstrTemp=strTemp&?&Trim(Request.QueryString)
GetUrl=strTemp
EndFunction
经测试这个代码得到的路径为:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
方法二:得到虚拟路径,得到参数
复制代码 代码如下:
PrivateFunctionGetUrl()
DimScriptAddress,M_ItemUrl,M_item
ScriptAddress=CStr(Request.ServerVariables(SCRIPT_NAME))取得当前地址
M_ItemUrl=
If(Request.QueryString<>)Then
ScriptAddress=ScriptAddress&?
ForEachM_itemInRequest.QueryString
IfM_item=page_numThenExitfor此处的作用就是过滤掉Page_num这个页次的参数(该参数是在page_turn.asp中自行设置的,根据个人设定而变),否则每次翻页都会叠加这个参数,虽然不影响功能,但总归不太好吧~~
IfInStr(page,M_Item)=0Then
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&))&&
EndIf
Next
Else
ScriptAddress=ScriptAddress&?
endif
GetUrl=ScriptAddress&M_ItemUrl
EndFunction
上面的代码得到的地址为
基本上差不多
如果只是为了得到?号后面的东西,我们可以用下面的代码
复制代码 代码如下:
response.writereplace(request.querystring,.html,)
得到的就是Param-VR52tmx3syn03777是不是满足了我们的需要了呢
PS:上面的所有情况只是针对纯asp,如果结合urlrewrite的话,功能会有所增强,搜索的友好型,也会加强
文章标题:asp获取URL参数的几种方法分析总结
文章链接:http://soscw.com/index.php/essay/9587.html