I programmeringsspråket Java , är en servlet en klass som används för att utvidga ett serverns kapacitet som nås genom en värd ansökan . Detta utföres vanligen av en begäran -respons programmering modell . HTTP - specifika servlets ge doGet och doPost metoder för att hantera dessa tjänster . Att få eller hämta den begärande URL i en servlet sker via användning av vissa Java ansökningar . Den följande URL antas i stegen nedan : http://hostname.com/mywebapp/servlet/MyServlet/a/b ; c = 123 d = 789 ? . Instruktioner
1
Använd ServletRequest.getRequestURL ( ) :
public static String getURL ( HttpServletRequest req ) {
String reqUrl = req.getRequestURL ( ) toString ( . ) ;
String queryString = req.getQueryString ( ) ; " ? " //d = 789
om ( queryString = null ) {
reqUrl + = + queryString ;
}
avkastning reqUrl ,
}
här metoden returnerar allt men frågesträngen
2
Använd . ServletRequest.getRequestURI ( ) om du inte behöver det värdnamn : .
public static String getUrl ( HttpServletRequest req ) {
String reqUri = req.getRequestURI ( ) toString ( ) ;
String queryString = req.getQueryString ( ) , //d = 789
om ( queryString = null ) {
reqUri + = + queryString " ? " ;
}
retur reqUri ,
}
3
att konstruera URL från grunden , använd följande :
public static String getUrl ( HttpServletRequest req ) {
String system = 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 ursprungliga begäran URL
url
String = system + " ://" + servernamn + " : " + serverPort + contextPath + servletPath ; if ( ! pathInfo = null ) {
url + = pathInfo ;
}
om ( queryString = null ) {
url + = + queryString " ? " ;
}
retur url ,
}