Obter o URL completo e a string de consulta no Servlet para solicitações HTTP e HTTPS
Estou escrevendo um código cuja tarefa é recuperar um URL solicitado ou um caminho completo. Eu escrevi este código:
HttpServletRequest request;//obtained from other functions
String uri = request.getRequestURI();
if (request.getQueryString() != null)
uri += "?" + request.getQueryString();
Então, quando eu navegohttp://google.com?q=abc
está tudo bem (correto). Mas há um problema quando eu navegohttps://google.com
. O valor deuri
éhttp://google.com:443google.com:443
Então o programa não só quandoHTTPS
é usado.
E a saída é a mesma pararequest.getRequestURL().toString()
.
Qual é a solução?