metodo - doget java
Obtener URL de solicitud en un servlet (1)
Quiero saber la diferencia entre los dos métodos siguientes para obtener una URL de solicitud en servlet.
Método 1:
String url = request.getRequestURL().toString();
Método 2:
url = request.getScheme()
+ "://"
+ request.getServerName()
+ ":"
+ request.getServerPort()
+ request.getRequestURI();
¿Hay alguna posibilidad de que los dos métodos anteriores den dos URL diferentes?
El getRequestURL()
omite el puerto cuando es 80 mientras que el esquema es http
, o cuando es 443 mientras que el esquema es https
.
Entonces, solo use getRequestURL()
si todo lo que quiere es obtener la URL completa. Sin embargo, esto no incluye la cadena de consulta GET. Es posible que desee construirlo de la siguiente manera, entonces:
StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();