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

ASP
在线实时开通FTP&WEB
对文件的操作--建立移动删除文件夹
利用FSO取得BMP,JPG,PNG,GIF文件信息
三种禁用FileSystemObject组件的方法
在线修改Serv-U 4.2用户密码
asp 中常用的文件处理函数
FSO+递归生成文件列表(xml)
文件遍历排序函数
清空iis log 中自己登录ip的vbs
NAV导致IIS调用FSO失败的解决方法
构建免受 FSO 威胁虚拟主机(三)
构建免受 FSO 威胁虚拟主机(二)
构建免受 FSO 威胁虚拟主机(一)
类似于iis浏览的功能
巧用FileSystem组件实现WEB应用中的本地特定打印
ASP中FSO对象对IIS WEB服务器数据安全的威胁及对策
文件的读出 编辑 管理
怎样判断一个盘上是否有文件
用ASP实现对MP3曲目信息的操作
关于用ADO STREAM做的无组件上传程序简单介绍

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 108 ::
收藏到网摘: 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的话,功能会有所增强,搜索的友好型,也会加强