Как правильно поставить 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 говорит:

Путь должен начинаться с / и интерпретируется как относительно текущего корневого контекста

Другие вопросы по тегам