Страницы Facelets в каталоге WEB-INF

Каждый пример проекта, который я видел до сих пор, в книге или учебнике, имеет страницы XHTML (Facelets) на том же уровне, что и каталог WEB-INF. Я также читал, что для того, чтобы страницы не были доступны напрямую на сервере, вам нужно скрыть их в каталоге WEB-INF, а это означает, что для этого нужен какой-то вид-преобразователь. Мой вопрос в том, как я могу это сделать?


person claudia b    schedule 16.03.2012    source источник


Ответы (1)


Я думаю, вы неправильно поняли назначение файлов XHTML, помещенных в /WEB-INF. Это включаемые файлы, мастер-шаблоны и файлы тегов, именно те страницы, которые вы не хотите, чтобы конечный пользователь мог открывать отдельно. Обычные страницы и клиенты шаблонов не помещаются в /WEB-INF.

Смотрите также:

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