Как правильно поставить JSP в WEB-INF? - PullRequest
3 голосов
/ 28 декабря 2011

Я использую 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 Ответ

8 голосов
/ 28 декабря 2011

Вы, кажется, передаете путь /jsp/main_read.jsp, а JSP находится в /WEB-INF/jsp/jsp/main_read.jsp.Очевидно, пути не совпадают.Передайте правильный путь к getRequestDispatcher(): /WEB-INF/jsp/jsp/main_read.jsp.

javadoc говорит:

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

...