Каждый пример проекта, который я видел до сих пор, в книге или учебнике, имеет страницы XHTML (Facelets) на том же уровне, что и каталог WEB-INF. Я также читал, что для того, чтобы страницы не были доступны напрямую на сервере, вам нужно скрыть их в каталоге WEB-INF, а это означает, что для этого нужен какой-то вид-преобразователь. Мой вопрос в том, как я могу это сделать?
Страницы Facelets в каталоге WEB-INF
Ответы (1)
Я думаю, вы неправильно поняли назначение файлов XHTML, помещенных в /WEB-INF
. Это включаемые файлы, мастер-шаблоны и файлы тегов, именно те страницы, которые вы не хотите, чтобы конечный пользователь мог открывать отдельно. Обычные страницы и клиенты шаблонов не помещаются в /WEB-INF
.
Смотрите также:
person
BalusC
schedule
16.03.2012
В следующей ссылке есть понятие, что страницы в WEB-INF не доступны напрямую из веб-браузера:examulator.com/moodle/mod/resource/view.php?id=455
- person claudia b; 16.03.2012
если вы создаете проект Spring MVC, все страницы устанавливаются в каталоге WEB-INF, а в файле web.xml есть преобразователь представления. Как я могу сделать это для страниц xhrml?
- person claudia b; 16.03.2012
JSF — это не Spring MVC, пожалуйста, не сравнивайте яблоки с апельсинами. Я также не понимаю, почему вы хотите сделать это для JSF. Не могли бы вы аргументировать причину, по которой вы считаете, что размещение всех представлений, включая общедоступные, в
/WEB-INF
абсолютно необходимо? Почему вы хотите пройти дополнительный путь с помощью преобразователя представления, чтобы в конце концов они все еще были общедоступными?
- person BalusC; 16.03.2012
Я не особенно хочу этого делать, но есть люди из управления, которые знают такие понятия, что страницы должны быть под WEB-INF и видели Spring MVC или другие виды из проектов, которые это делают, и из соображений безопасности я должен также сделать это. Не знаю, можно ли, нужно ли??
- person claudia b; 16.03.2012
В Spring MVC все файлы помещаются в
/WEB-INF
, чтобы предотвратить прямой доступ, поскольку их нужно открывать с помощью виртуального URL-адреса, иначе конечный пользователь сможет получить необработанный исходный код, открыв *.jsp
напрямую вместо *.html
, *.do
или любого другого сопоставленного по Spring MVC. Но в JSF это не нужно. Вам просто нужно сопоставить FacesServlet
с шаблоном URL *.xhtml
. Таким образом, конечный пользователь никогда не сможет получить необработанный исходный код. Вам нужно только поместить файлы include/tag/template в /WEB-INF
, потому что к ним в любом случае не следует обращаться напрямую.
- person BalusC; 16.03.2012
Спасибо за ваши ответы, теперь я должен сделать перерыв, чтобы понять их :)
- person claudia b; 16.03.2012
Опять же, не сравнивайте яблоки с апельсинами. Вы только больше запутаетесь :)
- person BalusC; 16.03.2012