3

MVC を使用しており、JSP ページを WEB-INF に配置して直接アクセスしないようにしたいと考えています。Web コンテンツの jsp フォルダーに index.jsp ページと他のページがあり、動作します。次のようになります。

-Web Content
-index.jsp
-jsp
--main_read.jsp
--...

ちなみに、index.jspは私のログインページであり、ユーザーがログインしているかどうか、コントローラーで使用します

RequestDispatcher dispatcher =
        getServletContext().getRequestDispatcher("jsp/main_read.jsp");
dispatcher.forward(request, response);

私は完璧に動作しますが、JSP を WEB-INF に配置しようとすると失敗します。

-Web Content
-index.jsp
-WEB-INF
--jsp
---jsp
----main_read.jsp
----...

そして、このようなエラーを出します

HTTP Status 404 - /Libruary/jsp/main_read.jsp

type Status report

message /Libruary/jsp/main_read.jsp

description The requested resource (/Libruary/jsp/main_read.jsp) is not available.
Apache Tomcat/6.0.26

おそらく問題はページ パスにありますdispatcher.forward

4

1 に答える 1

8

パスを渡しているよう/jsp/main_read.jspで、JSP は にあり/WEB-INF/jsp/jsp/main_read.jspます。明らかに、パスは一致しません。正しいパスをgetRequestDispatcher():に渡します/WEB-INF/jsp/jsp/main_read.jsp

javadocは次のように述べています。

パス名は / で始まる必要があり、現在のコンテキスト ルートを基準として解釈されます。

于 2011-12-28T09:52:03.093 に答える