Ich habe eine Web-App mit dem Kontextstamm „myapp". und ein Servlet myapp/page1 und ein jsp myapp/page2.jsp. Vom Servlet leite ich mit ' zu jsp um response.sendRedirect('/page2.jsp')
. Es scheitert. Mir ist aufgefallen, dass die Anforderungsumleitung auf „ http://localhost:8080/page2.jsp
" erfolgt (das Kontextstammverzeichnis ist nicht in der URL enthalten).
Mein Verständnis ist, dass das Kontextstammverzeichnis vom Container enthalten wäre.
Env: Tomcat 7, web.xml Version 3.0,
Was fehlt mir?
Lösung des Problems
Nein, Sie verwenden einen relativen Pfad. Ein absoluter Pfad zu page2.jsp wäre "http://localhost:8080/"+request.getContextRoot()+"/page2.jsp"
. Ein weiterer Vorteil dieses Ansatzes besteht darin, dass Sie Ihren Code nicht ändern müssen, falls Sie jemals Ihren Anwendungsserver ändern sollten, um JBoss oder WebLogic oder was auch immer zu sagen.
Keine Kommentare:
Kommentar veröffentlichen