Я не понимаю смысла 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», и, насколько я понимаю, это разрешает эту папку независимо от того, как она называется.Это работает.
Однако из всего этого я пришел к выводу, что обратно в моем .java-коде request.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 всегда разрешен?