ServletRequest / ServletResponse操作

时间:2013-10-16 15:02:34

标签: java servlet-filters

我想实现一个高级Java servlet过滤器来处理API服务器上的批处理请求。与Facebook batch request API类似的东西。这个想法是:

  • 在给定网址上设置servlet过滤器
  • 覆盖doFilter(request, response),此处:
  • 解析来自body的部分请求列表,每个请求:
    • 准备部分请求
    • 致电chain.doFilter(partialRequest, partialResponse)
    • 记住部分回应
  • 使用部分回复列表呈现回复

我能够为每个部分请求构建HttpServletRequestWrapper,并使用某些输出流作弊创建HttpServletResponseWrapper,但这有点难,我必须改变几乎所有部分,路径,正文,标题等。

请求/响应操作或更好的请求/响应包装类是否有好的库?

2 个答案:

答案 0 :(得分:0)

我知道您希望将尽可能多的请求整合到一个请求中,但我认为您不会在后端对它们进行解除合并。

我认为你的方法使事情变得复杂,我甚至不确定是否有可能在后端产生新的HttpRequest对象。

删除过滤器,坚持一个请求(在前端和后端),并为请求中的每个任务生成一个新线程。

答案 1 :(得分:0)

您感兴趣的人的回顾性更新:

最后,我潜入了HttpServletRequestWrapperHttpServletResponseWrapper黑暗森林的一整天,并完成了功能齐全的批量过滤,为servlet和聚合响应提供了多个请求。

不幸的是,这个过滤器必须是servlet之前的一行中的最后一个过滤器,因为后续过滤器只被调用一次。