Struts2 两个Struts过滤器之间的区别?

Struts2 两个Struts过滤器之间的区别?,struts2,filter,struts,Struts2,Filter,Struts,我在web.xml中看到了两种Struts 2过滤器 org.apache.struts2.dispatcher.FilterDispatcher org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 请告诉我这两种过滤器的区别?新过滤器的引入有以下原因 随着FilterDispatcher及其部署,发布了大量信息 新过滤器提供了一种更好的方式来启用自定义和覆盖 让开发人员清楚地知道过滤器在做什么 过程 使调度

我在web.xml中看到了两种Struts 2过滤器

  • org.apache.struts2.dispatcher.FilterDispatcher
  • org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

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

    新过滤器的引入有以下原因

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

  • 其中主要的驱动因素是,早期的Filter dispatcher存在很多问题,其他原因是转向OSGI。

    如果您使用的是Struts版本>=2.1.3,则始终建议升级新的筛选器类–StrutsPrepareAndExecuteFilter(org.apache.struts2.dispatcher.ng.Filter.StrutsPrepareAndExecuteFilter). 请参阅:。我想从代码中提取原因,但不在家用计算机附近。。。无论如何,StrutsPrepareAndExecuteFilter是两者中较新的一个。如果签入同一个包,那么还有一个prepare和一个单独的execute过滤器。这可以让过滤器级别的其他组件更好地与struts2交互。我认为prepare过滤器会加载执行操作所需的所有内容,但不会启动执行。这使得第三方组件可以与struts2交互(我没有足够的创造力来考虑任何用例)。StrutsPrepareAndExecuteFilter只是将这两个文件服务器剪切粘贴到一个类中。所以我很确定维护这个类比较简单,这也是FilterDispatcher被弃用的原因。