Nel linguaggio di programmazione Java , un servlet è una classe che viene utilizzata per estendere la capacità di un server a cui si accede da un'applicazione host . Questo viene di solito effettuata da un modello di programmazione richiesta-risposta . Servlet HTTP specifiche forniscono i metodi doGet e doPost per la gestione di questi servizi . Ottenere o recuperare l'URL del richiedente in un servlet avviene tramite l'uso di alcune richieste di Java . Il seguente URL è assunto nei passaggi riportati di seguito : http://hostname.com/mywebapp/servlet/MyServlet/a/b ; c = 123 d = 789 ? . Istruzioni
1
Usa ServletRequest.getRequestURL ( ) :
public static String getURL ( HttpServletRequest req ) {
String reqUrl = req.getRequestURL ( ) toString (. ) ;
String queryString = req.getQueryString (); ! " ? " //d = 789
se ( queryString = null) {
reqUrl + = + queryString ;
}
ritorno reqUrl ;
}
Questo metodo restituisce tutto, ma la stringa di query
2
Usa . ServletRequest.getRequestURI ( ), se non è necessario il nome host : .
public static String getUrl ( HttpServletRequest req ) {
String reqUri = req.getRequestURI ( ) toString ( ) ; < br
String > queryString = req.getQueryString ( ) ; //d = 789
se ( queryString = null ) {
reqUri + = + queryString " ? " ;
}
ritorno reqUri ;
}
3
Per costruire l'URL da zero , utilizzare il seguente :
< p > public static String getUrl ( HttpServletRequest req ) {
schema String
= req.getScheme ( ) ; //http
String nomeServer = req.getServerName ( ) ; //hostname.com < br
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
//Ricostruire originale richiedendo URL
String url = schema + " ://" + serverName + " : " + + serverPort contextPath + servletPath ; if ( ! pathInfo = null ) { < br
url > + = pathInfo ;
}
se ( queryString = null ) {
url = + + queryString " ? " ;
< p > }
ritorno url ;
}