Kurz gesagt, ich habe ein Servlet, das eine GET-Anfrage an eine JSP weiterleitet, und ich möchte die Ziel-URL vom Benutzer "ausblenden" .Weiterleiten einer Anfrage von Servlet zu JSP mit RequestDispatcher versteckt nicht die Ziel-URL
Mein Setup ist wie folgt:
- Ein Servlet, abgebildet URL "www.mydomain.com/pages/page1"
- Eine JSP, an der Adresse „/ WEB-INF/pages/Seite1 .jsp "relativ zum Anwendungsstamm. Die JSP befindet sich im WEB-INF-Verzeichnis, um nicht direkt vom Browser aus erreichbar zu sein.
Beim Zugriff über den Browser, das Servlet Vorverarbeitung der eingehende GET-Anforderung und leitet sie an die JSP mit dem folgenden Code-Schnipsel:
request.getRequestDispatcher("/WEB-INF/pages/page1.jsp").forward(request, response);
Das gewünschte Verhalten ist für den Browser Pflegen Sie die URL "www.mydomain.com/pages/page1", während der Benutzer den Inhalt der JSP sieht.
Leider konsequent der Browser schaltet die JSP URL anzuzeigen: "www.mydomain.com/WEB-INF/pages/page1.jsp" (Getestet in Chrome und Firefox)
Kann mir jemand sagen, was könnte dieses Verhalten verursachen?
Quelle: Diese Lösung in dieser CodeRanch Antwort beschrieben wird, in dem sie erfolgreich sind, an die Adresse der JSP „versteckt“: http://www.coderanch.com/t/618800/JSP/java/Url-hiding
Das sollte gut funktionieren. Können Sie die vollständige 'doGet()' Methode Ihres Servlets und das 'Servlet-Mapping' in der' web.xml' senden. –
@ W-S, danke für die Bestätigung, dass Sie auch erwarten, dass dies funktioniert. Das hat mich dazu inspiriert, etwas zu debuggen und die ziemlich weit hergeholte Ursache des Problems zu finden. Siehe meine Antwort unten. – paulkore