【问题标题】:Difference between two Struts filters?两个Struts过滤器之间的区别?
【发布时间】:2013-04-17 20:23:22
【问题描述】:

我在 web.xml 中见过两种 Struts 2 过滤器。

  1. org.apache.struts2.dispatcher.FilterDispatcher
  2. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

请告诉我这两个过滤器的区别?

【问题讨论】:

  • 如果您使用的 Struts 版本 >= 2.1.3,始终建议升级新的过滤器类——StrutsPrepareAndExecuteFilter (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)。见mkyong.com/struts2/…
  • 我想从代码中提取原因,但不在家用计算机附近...无论如何,StrutsPrepareAndExecuteFilter 是两者中较新的。如果您签入同一个包,则还有一个准备和一个单独的执行过滤器。这让过滤器级别的其他组件可以更好地与 struts2 交互。我认为准备过滤器会加载执行操作所需的所有内容,但不会启动执行。这让第 3 方组件可以与 struts2 交互(我没有足够的创造力来考虑任何用例)。 StrutsPrepareAndExecuteFilter 只是将这两个文件管理器剪切并粘贴到
  • 一节课。所以我很确定维护这个类更简单,这就是不推荐使用 FilterDispacher 的原因。

标签: struts2 filter struts


【解决方案1】:

引入新过滤器的原因如下

  1. FilterDispatcher 及其部署发布了很多。
  2. 新过滤器提供了一种更好的方式来启用自定义和覆盖。
  3. 让开发人员清楚地知道过滤器在做什么 进程。
  4. 使调度过程更加灵活,以支持 OSGi 或插件系统中的本机操作。

其中主要的驱动原因是,早期的过滤器调度程序有很多问题,其他原因是转向 OSGI。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2017-03-02
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多