<分区>
我正计划编写一个 servlet 应用程序(用于使用 OSGI 进行部署)并使用一些过滤器进行 HTTP header 预处理。虽然最初选择了 javax.servlet 过滤器实现,但我突然想到我实际上不知道为什么/何时会选择使用它而不是 Jersey ContainerRequestFilter。 当然后者带有一些预建的过滤器,但可以说前者也是如此(例如 Cors 过滤器)。 因此,在选择使用哪种 API 时应该考虑什么?是否有特定情况下不应使用一个来支持另一个?
<分区>
我正计划编写一个 servlet 应用程序(用于使用 OSGI 进行部署)并使用一些过滤器进行 HTTP header 预处理。虽然最初选择了 javax.servlet 过滤器实现,但我突然想到我实际上不知道为什么/何时会选择使用它而不是 Jersey ContainerRequestFilter。 当然后者带有一些预建的过滤器,但可以说前者也是如此(例如 Cors 过滤器)。 因此,在选择使用哪种 API 时应该考虑什么?是否有特定情况下不应使用一个来支持另一个?
最佳答案
[...] servlet 过滤器环绕 servlet 处理并在相同的 Java 调用堆栈中运行。因为 JAX-RS 有一个异步 API,所以 JAX-RS 过滤器不能在同一个 Java 调用堆栈中运行。在调用 JAX-RS 方法之前,每个请求过滤器都会运行到完成。 [...]
我认为,这是一个关键的区别,在选择一个或另一个时应该考虑到这一点。
关于javax servlet 过滤器与 Jersey 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24497349/
相关文章:
java - 如何从 eclipse e4 中的处理程序执行方法获取图标
java.lang.NoClassDefFoundError : org/camunda/bpm/model/bpmn/instance/FlowNode
java - 如何告诉我的 java exe 读取同一文件夹中的 ini 文件?
java - 最适合存储日期和时间的 SQL 和 Java 数据类型
html - Servlet返回“HTTP状态404请求的资源(/Servlet)不可用”
java - 如何在 Java 中使用 servlet 过滤器来更改传入的 servlet 请求 url?
java - Apache Http 客户端编码 UTF-8 不起作用