Как указать путь к файлу .JSP для request.getRequestDispatcher ()?
Я запутался в значении request.getContextPath (). Мой формат файла выглядит следующим образом:
MyServer/WebContent:
/Resources/MyImage.jpg
/Resources/Scripts/MyScript.js
/WEB-INF/JSP/MyPage.jsp
вMyPage.jsp
Я могу найти JavaScript и изображение с помощью
<script src="${pageContext.request.contextPath}/Resources/Scripts/MyScript.js">
а также
<img src="${pageContext.request.contextPath}/Resources/MyImage.img">
Из этого я пришел к выводу, что${pageContext.request.contextPath}
динамически разрешается в папку «WebContent», и, насколько я понимаю, это будет разрешаться в этой папке независимо от того, как она называется. Это работает.
Однако из всего этого я пришел к выводу, что в моем коде .javarequest.getContextPath()
также будет динамически преобразовываться в «WebContent». Но когда я пытаюсь перейти от кода .java кMyPage.jsp
используя строку, образованную изrequest.getContextPath()+"/WEB-INF/JSP/MyPage.jsp"
JSP не может быть найден; это приводит к ошибке 404 - «Запрошенный ресурс (/MyServer/WEB-INF/JSP/MyPage.jsp) недоступен». Если я позвоню"/WEB-INF/JSP/MyPage.jsp"
мы запускаем страницу JSP. Может ли кто-то объяснить, почему до ожиданияrequest.getContextPath()
приводит к сбою и есть ли что-то еще, что я должен использовать, чтобы гарантировать, что путь к .JSP всегда разрешен?