ASP.NET中利用Segments取得URL的文件名的一种方法分享
程序员文章站
2024-03-06 18:18:02
例如:http://www.abc.com/book/list.aspx,则对应取到list.aspx。一般我们可以这样写: 复制代码 代码如下: string url =...
例如:http://www.abc.com/book/list.aspx,则对应取到list.aspx。一般我们可以这样写:
string url = request.url.tostring();
string r = url.substring(url.lastindexof('/') + 1);
response.write(r);
上述方法 一般情况下是可以的,但如果url地址带参数则会有问题。比如加上?id=3&name=tim,则最后取得的是list.aspx?id=3&name=tim,显然不仅仅只有文件名。
实际上,.uri类提供了一个segments属性,其实质是一个字符串数组对象,存放了url路径段的各个值,最后一个元素就是文件名。
可以试验一下,即使文件名后带参数?id=3&name=tim,最后取得的仍然是list.aspx。
复制代码 代码如下:
string url = request.url.tostring();
string r = url.substring(url.lastindexof('/') + 1);
response.write(r);
上述方法 一般情况下是可以的,但如果url地址带参数则会有问题。比如加上?id=3&name=tim,则最后取得的是list.aspx?id=3&name=tim,显然不仅仅只有文件名。
实际上,.uri类提供了一个segments属性,其实质是一个字符串数组对象,存放了url路径段的各个值,最后一个元素就是文件名。
复制代码 代码如下:
response.write(request.url.segments[request.url.segments.length - 1]);
可以试验一下,即使文件名后带参数?id=3&name=tim,最后取得的仍然是list.aspx。
上一篇: Java log4j详细教程