Na linguagem de programação Java, um servlet é uma classe que é usado para estender a capacidade de um servidor que é acessado por um aplicativo host. Isto é normalmente realizado através de um modelo de programação de pedido-resposta . Servlets HTTP específicos fornecer os métodos doGet e doPost para lidar com esses serviços. Ficando ou recuperar a URL solicitante em um servlet é feito através do uso de certos pedidos de Java. A URL a seguir é assumido nas etapas abaixo : http://hostname.com/mywebapp/servlet/MyServlet/a/b ; c = 123 d = 789 ? . Instruções
1
Use ServletRequest.getRequestURL ():
public static string getUrl ( HttpServletRequest req) {
Cordas reqUrl = req.getRequestURL toString () ( . );
Cordas queryString = req.getQueryString ( ) //d = 789
if ( queryString = null) {
reqUrl + = + queryString ! "?" ;
}
retornar reqUrl ; .
}
Este método retorna tudo, mas a string de consulta
2
Use ServletRequest.getRequestURI () se você não precisa do nome do host : .
estática Cordas getUrl ( HttpServletRequest req) { público
Cordas reqUri = req.getRequestURI toString () (); < br >
Cordas queryString = req.getQueryString ( ) //d = 789
if ( queryString = null !) {
reqUri + = + queryString "?" ;
}
retornar reqUri ;
}
3
Para construir a URL a partir do zero , use o seguinte:
public static string getUrl ( HttpServletRequest req) {
esquema string = req.getScheme () //http
serverName string = req.getServerName ( ) //hostname.com
int serverPort = req.getServerPort () //80
Cordas contextPath = req.getContextPath ( ) ///mywebapp
Cordas servletPath = req.getServletPath () ///servlet /MyServlet
Cordas pathInfo = req.getPathInfo ( ) ///a /b , c = 123
Cordas queryString = req.getQueryString ( ) //d = 789
//Reconstruir URL requerente inicial
string url = esquema + " ://" + serverName + " :" + + serverPort contextPath + servletPath ; if (! pathInfo = null) {
url + = pathInfo ;
}
if ( queryString = null !) {
url + = + queryString "?" ;
}
retornar url ;
}