Подтвердить что ты не робот

Создание абсолютного URL-адреса из относительного URL-адреса в Java

У меня возникли проблемы с созданием абсолютного URL-адреса из относительного URL-адреса, не прибегая к хакерству String...

Учитывая

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

Помогите с благодарностью

4b9b3361

Ответ 1

Использование java.net.URL

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

Ответ 2

Как насчет:

String s = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/someImage.jpg";

Ответ 3

Похоже, вы уже разобрались с твердой частью, и это то, на чем вы работаете. Остальное легко,

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

Должен дать вам то, что вам нужно.