¿Cómo especificar la ruta al archivo .JSP para request.getRequestDispatcher ()?
Estoy confundido sobre el significado de request.getContextPath (). El diseño de mi archivo es el siguiente:
MyServer/WebContent:
/Resources/MyImage.jpg
/Resources/Scripts/MyScript.js
/WEB-INF/JSP/MyPage.jsp
En elMyPage.jsp
Puedo localizar el JavaScript y la imagen de
<script src="${pageContext.request.contextPath}/Resources/Scripts/MyScript.js">
<img src="${pageContext.request.contextPath}/Resources/MyImage.img">
De esto llegué a la conclusión de que${pageContext.request.contextPath}
resolvió dinámicamente la carpeta "WebContent" y tengo entendido que esto se resolverá en esta carpeta sin importar cómo se llame. Eso está funcionando.
Sin embargo, de todo esto llegué a la conclusión de que en mi código .javarequest.getContextPath()
también se resolvería dinámicamente a "WebContent". Pero cuando intento reenviar desde el código .java aMyPage.jsp
usando la cadena formada a partir derequest.getContextPath()+"/WEB-INF/JSP/MyPage.jsp"
, el JSP no se puede encontrar; esto da como resultado un error 404: "El recurso solicitado (/MyServer/WEB-INF/JSP/MyPage.jsp) no está disponible". Si llamo a"/WEB-INF/JSP/MyPage.jsp"
lanzamos la página JSP. ¿Alguien puede explicar por qué pre-pendienterequest.getContextPath()
hace que esto falle y ¿hay algo más que deba usar para asegurarme de que la ruta al .JSP se resuelva siempre?