我想在我的网络应用中使用一种机制,如下所述:
用户将输入mydomain.com/CompanyName,具体取决于CompanyNameit将显示其徽标及其自定义页面,并且我将在每次请求时再次在会话中获取该解析参数,我将比较解析后的CompanyName和会话中存储的一个,如果匹配,那么应用程序将显示所请求的页面和用户的data.else它将被重定向到登录页面。 而主要的是我想在JSF arch中使用这个东西。
我尝试了一个将解析所有请求的servlet,它将解析然后将请求发送到首选的servlet,但问题是它是否循环再次解析为同一个控制器servlet,
答案 0 :(得分:3)
您可以通过阶段监听器来完成此操作。您可以在faces-config.xml
中定义全局的(或使用注释,如果使用JSF 2.0)
<lifecycle>
<phase-listener>com.yourcompany.CompanyPhaseListener</phase-listener>
</lifecycle>
您可以访问FacesContext
,从中可以获取当前请求URI。解析它并在请求中存储适当的属性,稍后您可以在页面上阅读这些属性。
阶段监听器在指定的阶段执行,也许你应该选择RENDER_RESPONSE
要影响您的网址在浏览器中的显示方式,请检查PrettyFaces。
答案 1 :(得分:1)
我尝试了一个将解析所有请求的servlet,它将解析然后将请求发送到首选的servlet,但问题是它是否循环再次解析为同一个控制器servlet,
请改用Filter
。默认情况下它不会侦听转发的请求,因此您不会在转发时获得无限循环。