3

我正在使用 MVC 并希望将我的 JSP 页面放在 WEB-INF 中以避免直接访问它。我在 Web Content 的 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 回答