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">
これから、「WebContent」フォルダーに動的に解決されると結論付け${pageContext.request.contextPath}
ました。これは、名前に関係なく、このフォルダーに解決されることを理解しています。それは働いています。
ただし、これらすべてから、私の .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へのパスが常に解決されるようにするために使用する必要があるものは他にありますか?