当前位置: 首页 > 图文教程 > 网络编程 > ASP > [原创]asp获取URL参数的几种方法分析总结

ASP
分享一段代码show.asp?id=26变成show/?26的形式
多域名一网站时如果返回最原来的域名
[原创]完美解决ASP 不能更新。数据库或对象为只读。
5天学会asp
TSYS中生成静态页时溢出: ''CInt''
对象标记具有无效的 ''MSWC.MyInfo'' ProgID
[原创]随机增加网站点击的一个不错的方法
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
反SPAM新思路—换Z-BLOG的验证码!
七步倒┈→专用asp后门
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
使用ASP实现网站的“目录树”管理的代码
ShowPage 显示“上一页 下一页”等信息的封装代码
[原创]站长感慨asp编程究竟何去何从
响应对象 错误 ''ASP 0185 : 80020003'' 缺少默认属性
[原创]asp下用实现模板加载的的几种方法总结
[原创]asp获取URL参数的几种方法分析总结
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
ASP程序中输出Excel文件实例一则
ASP应用中如何限制同一表单被多次提交

ASP 中的 [原创]asp获取URL参数的几种方法分析总结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 62 ::
收藏到网摘: n/a

asp获取当前网址,或获取当前页面的所以参数 需要用到这个功能,没怎么测试呢,测试后给具体代码
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:简单,得不到参数,只有一个虚拟路径
复制代码 代码如下:

GetUrl =request("url") '这个因为我们没有url=什么字样所以直接pass掉

方法二:得到整个URL,得到参数
复制代码 代码如下:

'得到当前页面的地址
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

经测试这个代码得到的路径为:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
方法二:得到虚拟路径,得到参数
复制代码 代码如下:

Private Function GetUrl()
Dim ScriptAddress,M_ItemUrl,M_item
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得当前地址
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这个页次的参数(该参数是在page_turn.asp中自行设置的,根据个人设定而变),否则每次翻页都会叠加这个参数,虽然不影响功能,但总归不太好吧~~
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,如果结合urlrewrite的话,功能会有所增强,搜索的友好型,也会加强