【发布时间】:2011-11-22 15:28:50
【问题描述】:
我想知道处理请求的顺序是什么,servlet(@WebServlet)、过滤器(@WebFilter)、阶段监听器等有什么区别。
这些方法具有非常相似的标头 (doGet/doFiler)。
【问题讨论】:
标签: jakarta-ee servlets servlet-filters
我想知道处理请求的顺序是什么,servlet(@WebServlet)、过滤器(@WebFilter)、阶段监听器等有什么区别。
这些方法具有非常相似的标头 (doGet/doFiler)。
【问题讨论】:
标签: jakarta-ee servlets servlet-filters
关于过滤请求的处理,然后由 servlet 进行处理,如下所述:
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28959/filters.htm
因此,您主要使用 servlet 来传递内容,并可能使用过滤器更改请求/响应。过滤器可用于实现管道和过滤器或装饰器设计模式。 (尽管他们也可以自己交付内容,根本不将委托转发给 servlet 进行最终处理。)
servlet 请求处理就这么多。 PhaseListeners 是一个更高抽象级别的概念。它们不属于 servlet 规范,而是属于构建在 servlet 之上的 Java Server Faces 概念。它们可用于跟踪您的 JSF 组件在请求期间经历的阶段,因此当您想要在请求期间影响 JSF 组件的行为/呈现时,它们是过滤器的替代方案。
可以在此处找到使用相位侦听器的小示例: http://www.softwareengineeringsolutions.com/thoughts/frameworks/JSF.Techniques-PhaseListeners.htm
【讨论】: