Obtenga la URL completa y la cadena de consulta en Servlet para solicitudes HTTP y HTTPS

Estoy escribiendo un código cuya tarea es recuperar una URL solicitada o una ruta completa. He escrito este código:

HttpServletRequest request;//obtained from other functions
String uri = request.getRequestURI();
if (request.getQueryString() != null)
    uri += "?" + request.getQueryString();

Entonces, cuando navegohttp://google.com?q=abc está bien (correcto). Pero hay problema cuando navegohttps://google.com. El valor deuri eshttp://google.com:443google.com:443, Entonces el programa no solo cuandoHTTPS se utiliza

Y la salida es igual pararequest.getRequestURL().toString().

¿Cuál es la solución?

Respuestas a la pregunta(3)

Su respuesta a la pregunta