En résumé, j'ai une servlet qui transfère une requête GET à une JSP, et je voudrais "cacher" l'URL cible de l'utilisateur .Transférer une requête du servlet vers JSP en utilisant RequestDispatcher ne cache pas l'URL cible
Ma configuration est la suivante:
- Un servlet, mis en correspondance avec l'URL "www.mydomain.com/pages/page1"
- Une JSP, à l'adresse «/WEB-INF/pages/page1 .jsp ", par rapport à la racine de l'application. La JSP réside dans le répertoire WEB-INF, afin de ne pas être accessible directement depuis le navigateur.
Lors de l'accès à partir du navigateur, le servlet pré-traite la requête GET entrant, et il transmet à la JSP en utilisant le code suivant-extrait:
request.getRequestDispatcher("/WEB-INF/pages/page1.jsp").forward(request, response);
Le comportement souhaité est pour le navigateur maintenez l'URL "www.mydomain.com/pages/page1", pendant que l'utilisateur voit le contenu de la JSP.
Malheureusement, le navigateur passe toujours pour afficher l'URL de la page JSP: "www.mydomain.com/WEB-INF/pages/page1.jsp" (testé dans Chrome et Firefox)
Quelqu'un peut-il me dire, qu'est-ce pourrait provoquer ce comportement?
Source: Cette solution est décrite dans cette réponse CodeRanch, dans laquelle ils réussissent à « cacher » l'adresse à la JSP: http://www.coderanch.com/t/618800/JSP/java/Url-hiding
Cela devrait fonctionner correctement. Pouvez-vous envoyer la méthode 'doGet()' complète de votre servlet et la 'servlet-mapping' dans' web.xml'. –
@ W-S, merci de confirmer que vous attendez également que cela fonctionne. Cela m'a inspiré à faire un peu de débogage, et à trouver la cause plutôt farfelue du problème. Voir ma réponse ci-dessous. – paulkore