如何正确地将 JSP 放入 WEB-INF 中?
Posted
技术标签:
【中文标题】如何正确地将 JSP 放入 WEB-INF 中?【英文标题】:How to put JSP in WEB-INF correct? 【发布时间】:2012-01-29 01:37:37 【问题描述】:我正在使用 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
,但无论如何,请帮助我。
【问题讨论】:
【参考方案1】:您似乎通过了路径/jsp/main_read.jsp
,而JSP 在/WEB-INF/jsp/jsp/main_read.jsp
中。显然,路径不匹配。将正确的路径传递给getRequestDispatcher()
:/WEB-INF/jsp/jsp/main_read.jsp
。
javadoc 说:
路径名必须以 / 开头,并被解释为相对于 当前上下文根
【讨论】:
以上是关于如何正确地将 JSP 放入 WEB-INF 中?的主要内容,如果未能解决你的问题,请参考以下文章