web.xml y rutas relativas
-
03-07-2019 - |
Pregunta
en web.xml configuro mi archivo de bienvenida a un jsp dentro de web.xml
<welcome-file>WEB-INF/index.jsp</welcome-file>
dentro de index.jsp luego reenvío a un servlet
<% response.sendRedirect(response.encodeRedirectURL("myServlet/")); %>
sin embargo, la aplicación intenta encontrar el servlet en la siguiente ruta
applicationName/WEB-INF/myServlet
el problema es que web-inf no debería estar en la ruta. Si muevo index.jsp fuera de web-inf, entonces el problema continúa, pero ¿hay otra manera de solucionar esto?
Solución
<% response.sendRedirect(response.encodeRedirectURL("/myServlet/")); %>`
ya que el jsp se sirve desde el directorio WEB-INF, la url del servlet también se resuelve desde esa ruta relativa. agregar un / antes resolverá la url desde la raíz de contexto
Otros consejos
Tal como lo entiendo, WEB-INF es una carpeta especial que contiene la configuración y las clases utilizadas por sus JSP, no debe incluir el código destinado a la publicación directa.
De todos modos, ¿has probado / myServlet?
¿Has intentado hacerlo con la ruta absoluta?
response.sendRedirect(response.encodeRedirectURL("/myServlet/"));