JSF 2 Доступ к файлам Facelet - PullRequest
       11

JSF 2 Доступ к файлам Facelet

3 голосов
/ 09 сентября 2011

Я начинаю изучать JSF 2. Facelet, и я хотел бы проверить это в простом проекте.

У меня просто есть вопрос относительно структуры файлов в JSF 2. Когда я использовал Spring, я используюпоместить все мои страницы в WEB-INF так, чтобы они не были доступны для браузера.

Я заметил, что в JSF 2 вы должны поместить свой * .xhtml вне WEB-INF и разрешить доступ к ним черезFaces Servlet.

Вопрос, означает ли это, что все корпоративные приложения, использующие JSF, всегда устанавливают ограничение безопасности в своем файле web.xml?

<security-constraint>
    <web-resource-collection>
        <web-resource-name>XHTML files</web-resource-name>
        <url-pattern>*.xhtml</url-pattern>
    </web-resource-collection>
    <auth-constraint />
</security-constraint> 

Или они используют какой-то фильтр, который перехватывает все входящие запросы, а затем отклоняет запрос с * .xhtml?

Верно ли мое понимание, и если да, то какой из них более подходит для использования?

Спасибо

1 Ответ

1 голос
/ 09 сентября 2011

Третья альтернатива в JSF 2.x - это отображение FacesServlet прямо на *.xhtml вместо *.jsf или чего-либо еще. Таким образом, вам не нужно использовать ограничения безопасности или фильтры для предотвращения прямого доступа конечных пользователей к файлам *.xhtml. Единственным недостатком является то, что вы не можете обслуживать «простые ванильные» XHTML-файлы, не вызывая FacesServlet, но это, в свою очередь, уже не имеет особого смысла, поскольку технически такие файлы должны иметь расширение *.html.

Обратите внимание, что это не работает в старом JSF 1.x. FacesServlet будет работать в бесконечном цикле, вызывая себя снова и снова.

...