如何获取URL的路径?
我有一个网址。如何检索其路径部分?
例如:给定 "http://www.costo.com/test1/test2"
,如何获取 "test1/test2"
?
I have a URL. How do I retrieve its path part?
For example: Given "http://www.costo.com/test1/test2"
, how do I get "test1/test2"
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
你想要这样的东西:
实际上这会给你
/test1/test2
。您只需删除第一个/
即可获得所需内容:现在
path
中将包含test1/test2
。You want something like this:
Actually that'll give you
/test1/test2
. You'll just have to remove the first/
to get what you want:Now you'll have
test1/test2
inpath
.我对使用 Java URL 类从 URL 中提取路径的性能产生了怀疑,并认为这有点过分了。
因此我编写了三个方法,它们都使用不同的方式从给定的 URL 中提取路径。
对于给定的 URL,所有这三个方法都会被调用 1000000 次。
结果是:
代码 - 随意优化它:
I had performance doubts using the Java URL class for just extracting the path from an URL and thought that this is an overkill.
Therefore I wrote three methods, which all use a different way to extract the path from a given URL.
All three methods are invoked 1000000 times for a given URL.
The result is:
Code - feel free to optimize it:
另请参见
Also See
使用
URL
类。use
URL.getPath()
method ofURL
class.你可以这样做:
You can do this:
如果您想从应用程序的 url 获取它,例如 http://localhost:8080/ test1/test2/main.jsp。
使用可以使用
If you want to get it from an url of your application something like http://localhost:8080/test1/test2/main.jsp.
Use can use
我建议使用
URI
类,因为它也可以处理相对路径。下面是使用 URI 和 URL 实现相同效果的示例代码:上面的代码将产生相同的结果。如果路径可能是相对的,则 URI 很有用,例如
/some/path/collections-in-java?error=true
对于这种情况,
URI.getPath()
code> 将返回/some/path/collections-in-java
但URL.getPath()
将抛出MalformedURLException
。I recommend to use
URI
class because that can handle relative path also. Here is a sample code to achieve the same with URI and URL:The above code will produce same result. The URI is useful if there is chance that the path may be relative e.g.
/some/path/collections-in-java?error=true
For this case,
URI.getPath()
will return/some/path/collections-in-java
butURL.getPath()
will throwMalformedURLException
.也许晚了,但如果您不喜欢 URL 或 URI 方法,这里有一个简单的方法:
输出将是:
maybe late, but if you don't like URL or URI methods, here is a simple one:
The output will be: