【问题标题】:Howto: Intercept a a4j request using a javax.servlet.Filter?如何:使用 javax.servlet.Filter 拦截 a4j 请求?
【发布时间】:2011-04-03 19:21:35
【问题描述】:

有人知道如何使用 javax.servlet.Filter 拦截 a4j 请求吗? 拦截必须在调用 FacesServlet 之前发生(这就是我打算使用 Filter 进行拦截的原因)。

我想知道将在我的 backbean 上执行哪个方法,因为我需要先进行动态控制。

【问题讨论】:

    标签: java jsf richfaces servlet-filters ajax4jsf


    【解决方案1】:

    您想为 a4j 请求的标记确定请求标头。我不做a4j,但是如果它做的很好,你应该可以根据X-Requested-With这个header来判断。

    String requestedWith = request.getHeader("X-Requested-With");
    

    然后只需在 if 块中确定该值是否是 a4j 请求的预期值并进行相应处理。必要时不要忘记在末尾继续过滤器链。

    if (requestedWith.equals(someAjax4jsfSpecificValue)) {
        // Do your job.
    }
    chain.doFilter(request, response);
    

    要让它运行,只需将它映射到 FacesServlet<servlet-name> 上,因为它当前在 web.xml 中定义。

    <filter-mapping>
        <filter-name>yourFilter</filter-name>
        <servlet-name>facesServlet</servlet-name>
    </filter-mapping>
    

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 2014-05-26
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2013-11-10
      • 1970-01-01
      相关资源
      最近更新 更多