java - 如何: Intercept a a4j request using a javax. servlet.Filter?

标签 java jsf richfaces servlet-filters ajax4jsf

有人知道如何使用 javax.servlet.Filter 拦截 a4j 请求吗? 拦截必须在调用 FacesServlet 之前发生(这就是我计划使用 Filter 来执行此操作的原因)。

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

最佳答案

您想要确定 a4j 请求标记的请求 header 。我不做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);

要让它运行,只需将其映射到 <servlet-name> FacesServlet的正如当前在 web.xml 中定义的那样.

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

关于java - 如何: Intercept a a4j request using a javax. servlet.Filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567468/

相关文章:

java - Eclipse Java 项目错误

java - 为什么我现有的图像不会绘制到屏幕上?

jsf - 在 JSF 中的长时间处理期间防止 session 超时

java - 动态Jfreechart

jsf - 富:clientId,富:component and rich:element?有什么区别

java - 创建新线程以更新所述单独线程中的 JLabel 和 setIcon()

java - 无法读取 Exec JaCoCo 文件 ANT

java - MySQL 数据库连接几分钟后断开

java - Richface 组件的延迟加载

java - 将默认值设置为丰富的:select component which has enableManualInput set to true?