如何将JSP放入WEB-INF中?

时间:2011-12-28 09:48:00

标签: model-view-controller jsp web-inf

我正在使用MVC并希望将我的JSP页面放在WEB-INF中以避免直接访问它。我有一个index.jsp页面和Web内容的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,但无论如何,请帮助我。

1 个答案:

答案 0 :(得分:8)

您似乎传递了路径/jsp/main_read.jsp,而JSP位于/WEB-INF/jsp/jsp/main_read.jsp中。显然,路径不匹配。将正确的路径传递到getRequestDispatcher()/WEB-INF/jsp/jsp/main_read.jsp

javadoc说:

  

路径名必须以/开头,并被解释为相对于   当前上下文根