ubiquitour.com

Cómo obtener una URL de un Servlet

Cómo obtener una URL de un Servlet

En el lenguaje de programación Java, un servlet es una clase que se utiliza para ampliar la capacidad de un servidor que tiene acceso a una aplicación host. Esto generalmente se realiza por un modelo de programación de solicitud-respuesta. Los servlets HTTP específicos proporcionan los métodos doGet y doPost para el manejo de estos servicios. Obtener o recuperar el la URL de solicitud en un servlet se hace mediante el uso de ciertas peticiones de Java. En los pasos siguientes se asume la siguiente URL: http://hostname.com/mywebapp/servlet/MyServlet/a/b;c=123?d=789.

Instrucciones

1 ServletRequest.getRequestURL() de uso:

público estático String getUrl(HttpServletRequest req) {}

String reqUrl = req.getRequestURL().toString();

String queryString = req.getQueryString(); // d=789

if (queryString != null) {

reqUrl += "?"+queryString;

}

return reqUrl;

}

Este método devuelve todo, pero la cadena de consulta.

2 Use ServletRequest.getRequestURI() si necesita el nombre de host:

público estático String getUrl(HttpServletRequest req) {}

String reqUri = req.getRequestURI().toString();

String queryString = req.getQueryString(); // d=789

if (queryString != null) {

reqUri += "?"+queryString;

}

return reqUri;

}

3 Para construir la URL desde el suelo hacia arriba, utilice lo siguiente:

público estático String getUrl(HttpServletRequest req) {}

String scheme = req.getScheme(); // http

String serverName = req.getServerName(); // hostname.com

int serverPort = req.getServerPort(); // 80

String contextPath = req.getContextPath(); // /mywebapp

String servletPath = req.getServletPath(); // /servlet/MyServlet

String pathInfo = req.getPathInfo(); // /a/b;c=123

String queryString = req.getQueryString(); // d=789

// Reconstruct original requesting URL

String url = scheme+"://"+serverName+":"+serverPort+contextPath+servletPath; if (pathInfo != null) {

url += pathInfo;

}

Si (cadena! = null) {}

url += "?"+queryString;

}

return url;

}