Получение запроса URL в сервлете - PullRequest
46 голосов
/ 28 октября 2010

Я хочу узнать разницу между двумя приведенными ниже способами получения URL-адреса запроса в сервлете.

Метод 1:

String url = request.getRequestURL().toString();

Метод 2:

url = request.getScheme()
      + "://"
      + request.getServerName()
      + ":"
      + request.getServerPort()
      + request.getRequestURI();

Есть ли вероятность, что два вышеупомянутых метода дадут два разных URL?

1 Ответ

72 голосов
/ 10 декабря 2010

getRequestURL() опускает порт, когда он равен 80, когда схема http, или когда он равен 443, когда схема https.

Итак, просто используйте getRequestURL(), если все, что вам нужно, это получить весь URL. Это, однако, не включает строку запроса GET. Тогда вы можете построить его следующим образом:

StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
    requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...