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

Получение URL-адреса запроса в сервлете

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

Способ 1:

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

Способ 2:

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

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

4b9b3361

Ответ 1

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();