我计划编写一个servlet应用程序(用于与OSGI一起部署),并使用一些过滤器进行HTTP报头预处理。当我最初决定使用javax.servlet过滤器实现时,我突然想到,我实际上不知道为什么/什么时候会选择使用它,而不是泽西ContainerRequestFilter。当然,后者提供了一些预先构建的过滤器,但可以说前者也是如此(如Cors过滤器)。因此,在选择使用哪个API时应该考虑什么?是否有特定的情况,其中一种不应用于另一种?
发布于 2019-10-09 11:16:11
..。servlet过滤器环绕servlet处理,并在同一个Java调用堆栈中运行。因为JAX有一个异步API,所以JAX过滤器不能在同一个Java调用堆栈中运行。在调用JAX方法之前,每个请求筛选器都会运行到完成。..。
我认为,这是一个关键的区别,这应该考虑,当选择一个或另一个。
发布于 2018-12-10 16:24:19
JAX-RS过滤器的问题是您无法控制执行筛选链。
chain.doFilter(request, response);因为我现在的问题是将Servlet过滤器转换为JAX过滤器,但是当前的Servlet过滤器调用整个过滤器链,以便最终检查响应及其状态。在我看来,使用JAX过滤器是不可能的。
https://stackoverflow.com/questions/24497349
复制相似问题