In der Programmiersprache Java ist ein Servlet eine Klasse, die verwendet werden, um die Fähigkeit eines Servers , die von einer Host-Anwendung zugegriffen wird, verlängern wird . Dies wird in der Regel durch eine Anfrage-Antwort- Programmiermodell durchgeführt . HTTP-spezifische Servlets bieten die doGet und doPost Methoden zum Umgang mit diesen Diensten . Erste oder das Abrufen der der ersuchende URL in einem Servlet wird über die Verwendung bestimmter Java Zugriffe erfolgen . Die folgende URL wird in den folgenden Schritten angenommen : http://hostname.com/mywebapp/servlet/MyServlet/a/b ; c = 123 d = 789 ? . Anleitung
1
Nutzungsbedingungen ServletRequest.getRequestURL ():
public static String getUrl ( HttpServletRequest req) {
String reqUrl = req.getRequestURL () toString ( . );
String queryString = req.getQueryString (); " ? " //d = 789
if ( queryString = null) {
reqUrl + = + queryString ;
}
Rückkehr reqUrl ;
}
Diese Methode gibt alles, aber das Query-String
2
Nutzungsbedingungen . ServletRequest.getRequestURI (), wenn Sie nicht brauchen, den Host-Namen : .
public static String getUrl ( HttpServletRequest req) {
String reqUri = req.getRequestURI () toString ();
String queryString = req.getQueryString (); //d = 789
if ( queryString = null ) {
reqUri + = + queryString "?" ;
}
Rückkehr reqUri ;
}
3
Um die URL aus dem Boden konstruieren , verwenden Sie die folgenden Schritte aus:
< p> public static 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
//Rekonstruieren ursprünglichen URL anfordert
String url = Schema + " ://" + serverName + ": " + + serverPort contextPath + servletPath ; if (! pathInfo = null) {
url + = pathInfo ;
}
if ( queryString = null ) {
url = + + queryString "?" ;
< p> }
Rückkehr url ; }