【发布时间】:2012-06-03 04:22:15
【问题描述】:
我有一个 servlet,用于从许多第三方 REST 数据点获取数据、集成所有数据并以 HTML 格式报告数据。我还有一个过滤器,它具有以下流程 -
- 在请求命中过滤器时创建事件记录,并将 eventrecord 对象添加到请求中
- 执行 chain.doFilter - 允许 servlet 向事件记录添加更多详细信息
- 在返回浏览器的途中,过滤器获取事件记录对象并记录它。
现在,如果我使用 AsyncContext context = request.getAsyncContext(); 使用异步 servlet,它将与相同的 REST 数据点通信,但当数据准备好时,它将写入响应流而不是等待所有 REST 数据点响应,如何我会重新编写我的过滤器吗?它是否会附加到负责从 REST 数据点刷新数据的线程,以便在处理和刷新所有数据后,它将记录事件记录?
是否有任何通用模式可供我研究以了解如何使用 Servlet 3.0 的异步 servlet 处理此类用例?
我正在使用 JDK 6.0、Tomcat 7.0。
【问题讨论】:
标签: java-ee-6 server-push servlet-3.0