Как правильно поставить JSP в WEB-INF?
Я использую MVC и хочу поместить свои страницы JSP в WEB-INF, чтобы избежать прямого доступа к нему. У меня есть страница index.jsp и другие страницы в папке 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 говорит:
Путь должен начинаться с / и интерпретируется как относительно текущего корневого контекста