拦截器和滤波器之间的区别 - 这是对的吗?

use*_*607 12 struts struts2

我正在研究这个问题,这样我才能在面试中做出更好的回应.我一直在寻找清晰简洁的答案.

到目前为止,如果我错了或缺乏细节,请务必纠正我:

  1. 过滤器是Servlet API的一部分,拦截器是Struts 2.(虽然看起来很明显)
  2. Interceptor堆栈会触发已配置包中的请求,而过滤器仅适用于其映射的URL.
  3. 拦截器可以配置为执行或不执行,具体取决于具体的目标操作方法,通过excludeMethods和includeMethods,而过滤器缺少此功能.
  4. 过滤器是拦截过滤器模式的实现,而拦截器是拦截器模式.

这看起来像是一个准确而完整的答案吗?我应该添加或更正任何内容吗?线程问题/差异怎么样?

cha*_*had 5

我认为第一点是答案,但你应该能够说的不仅仅是

拦截器在 struts 2 中,过滤器是 Servlet API 的一部分

事实上,作为一名面试官,我期待并希望您在这里准确解释 Servelt API 和 Web 应用程序框架(如 Struts 2)之间的区别。这实际上是一个展示您对整个 Java Web 应用程序生态系统和基础架构的理解的机会。

好的答案可能涉及:

  1. Struts 2 框架是如何在 Servlet 过滤器中实现的。

  2. 哪些特定用例会在 struts 2 之外但在同一 Web 应用程序中调用 servlet 过滤器?

  3. Servlet API、Web 应用程序、Web 应用程序框架等究竟是什么?

我猜,以显示您对所有这些主题的理解的方式回答正是那里所寻找的。