FaceF文件上的JSF 2访问

时间:2011-09-09 08:00:21

标签: jsf-2 facelets

我开始探索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 个答案:

答案 0 :(得分:1)

JSF 2.x中的第三种选择是直接在FacesServlet而不是*.xhtml或其他地方映射*.jsf。这样您就不需要使用安全约束或过滤器来防止最终用户直接访问*.xhtml文件。它的唯一缺点是你不能在不调用FacesServlet的情况下提供“普通的”XHTML文件,但这反过来已经没有多大意义了,因为这些文件在技术上应该具有*.html扩展名。 / p>

请注意,这在旧的JSF 1.x中不起作用。 FacesServlet将在无限循环中运行,一次又一次地调用它。