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

ASP
使用索引服务器 - 创建ASP页面
使用索引服务器 - 增加属性
用TDC建立自己的数据库格式
较长text型数据无法在Asp页面中取出的解决办法
用ASP控制Flash
计算ASP页面的载入时间
页面延迟的两个简单方法
将ASP生成的内容写入响应流中最有效的方法
如何使用asp创建dsn?
清除浏览器历史记录代码
不离开页面刷新数据
得到表中字段属性代码
用js制作完善的日,月组合下拉框.
WEB页面实现淡入淡出菜单
不用组件来实现StrCat函数的功能
不用java的垂直滚动看板
使用Server.scripttimeout来减少ASP意外错误而使务器瘫痪
ODBC Drivers错误80004005的解决办法
用ASP方式实现动态伸缩形式列表主页
如何使ASP程序暂停指定的时间后再继续执行

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


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