java - 在Java中,从相对URL构建绝对 URL

  显示原文与译文双语对照的内容
147 3

在不求助于字符串hackery的情况下,从相对URL构建绝对URL是困难的。

给给

http://localhost:8080/myWebApp/someServlet

在该方法内:

 public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

什么是最"正确"的建筑方式?

http://localhost:8080/myWebApp/someImage.jpg

( 注意,必须是绝对的,而不是相对的)

目前,我通过构建字符串来完成,但是必须有更好的方法。

我查看了新 uri/url的各种组合,并最终

http://localhost:8080/someImage.jpg

帮助非常感谢

时间:原作者:0个回答

70 4

使用 java.net. URL

 URL baseUrl = new URL("http://www.google.com/someFolder/");
 URL url = new URL(baseUrl,"../test.html");
原作者:
72 1

怎么办:

String s = request.getScheme() +"://" + request.getServerName() +":" + request.getServerPort() + request.getContextPath() +"/someImage.jpg";
原作者:
106 5

看起来你已经经找到了硬件,这就是主机在运行的原因。其余的很简单

String url = host + request.getContextPath() +"/someImage.jpg";

应该给你你所需要的。

原作者:
...