【发布时间】:2012-04-02 16:38:57
【问题描述】:
我对 request.getContextPath() 的含义感到困惑。我的文件布局如下:
MyServer/WebContent:
/Resources/MyImage.jpg
/Resources/Scripts/MyScript.js
/WEB-INF/JSP/MyPage.jsp
在MyPage.jsp 中,我可以通过
<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”。但是当我尝试使用由request.getContextPath()+"/WEB-INF/JSP/MyPage.jsp" 形成的字符串从.java 代码转发到MyPage.jsp 时,找不到JSP;这会导致 404 错误 - “请求的资源 (/MyServer/WEB-INF/JSP/MyPage.jsp) 不可用”。如果我调用"/WEB-INF/JSP/MyPage.jsp",我们将启动 JSP 页面。有人能解释一下为什么预先挂起request.getContextPath() 会导致失败吗?我应该使用其他方法来确保始终解析 .JSP 的路径吗?
【问题讨论】:
标签: java jsp servlets requestdispatcher