转:
FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的action去处理。
FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!
StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!
这样的改革当然是有好处的.!
为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!
那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!
那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!
给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!
分享到:
相关推荐
随着Struts 2的发展,`FilterDispatcher`在新版本中逐渐被`StrutsPrepareAndExecuteFilter`取代,后者整合了准备和执行两个阶段,提高了框架的效率。不过,在很多旧项目中,`FilterDispatcher`仍然是常见的一部分。 ...
新Struts2与老版struts2的区别如下: 配置web.xml文件时过滤器配置的不同, <filter-class>org.apache.struts2.dispatcher.FilterDispatcher, 新版本中都是过时的了,采取该过滤器, <filter-class>org.apache....
在Struts2中,`FilterDispatcher`(在较新版本中称为`StrutsPrepareAndExecuteFilter`)是一个核心的Filter,它是Struts2框架的入口点。当一个HTTP请求到达服务器时,这个Filter会检查请求是否与Struts2配置的Action...
6. **FilterDispatcher配置**:在web.xml中,你需要配置FilterDispatcher(或StrutsPrepareAndExecuteFilter),指定其拦截哪些请求。配置包括过滤器的初始化参数,如`alwaysInvokePrepare`和`...
6. **FilterDispatcher与StrutsPrepareAndExecuteFilter**: - FilterDispatcher是Struts2早期版本的过滤器,负责拦截HTTP请求并将其分发给Struts2处理。 - StrutsPrepareAndExecuteFilter是新版本中的过滤器,...
FilterDispatcher与ActionProxy协作 `FilterDispatcher`负责将请求的处理工作交给`ActionProxy`。`ActionProxy`是Struts2中处理Action请求的关键组件,它通过`Configuration Manager`查询框架配置文件,找到与请求...
`ActionContextCleanUp`的作用是与`FilterDispatcher`协作,提供更灵活的SiteMesh整合,以及允许SiteMesh先于其他操作运行。 总的来说,Struts2.1.8是一个成熟的Java Web开发框架,它简化了MVC应用的构建,提供了...
FilterDispatcher与StrutsPrepareAndExecuteFilter** 早期版本的Struts2使用FilterDispatcher作为过滤器,处理HTTP请求。在新版本中,它被StrutsPrepareAndExecuteFilter替代,负责初始化和执行请求。 **8. 国际化...
如果请求的URL匹配Struts2的配置,那么请求就会被转发到Struts2的前端控制器——`FilterDispatcher`(在Struts2较新版本中,已替换为`StrutsPrepareAndExecuteFilter`)。 2. **过滤器Dispatcher**:`...
6. **DispatcherServlet与FilterDispatcher**:Struts2通过FilterDispatcher(在新版本中为StrutsPrepareAndExecuteFilter)拦截HTTP请求,进行调度和处理。这部分源码展示了如何在Servlet容器中集成Struts2。 7. *...
9. **FilterDispatcher与StrutsPrepareAndExecuteFilter**:作为Servlet过滤器,它们是Struts2处理请求的核心。FilterDispatcher在Struts2早期版本中负责拦截请求,而在2.0之后被StrutsPrepareAndExecuteFilter取代...
3. **配置web.xml**:在项目的`web.xml`文件中配置`StrutsPrepareAndExecuteFilter`或`FilterDispatcher`过滤器,指定它们处理所有请求。对于Struts2.1.3及更高版本,应使用`StrutsPrepareAndExecuteFilter`。 4. **...
3. **FilterDispatcher与StrutsPrepareAndExecuteFilter**:Struts2的核心过滤器,早期版本中是`FilterDispatcher`,在更新版本中被`StrutsPrepareAndExecuteFilter`取代。这两个过滤器负责拦截请求并引导它们进入...
最新版本的Struts2是2.16版本,最大变化是:2.0.6版本是使用FilterDispatcher类,而2.1.6版本使用StrutsPrepareAndExecuteFilter类,请看web.xml配置即可。 这是一个翻写例子,是用来体会Struts2.1.6的好例子。 目的...
- 请求分发:`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`负责接收请求并分发。 - 模型处理:Action类处理业务逻辑。 - 视图渲染:使用JSP或其他视图技术展示结果。 3. **Struts控制器组件的组成**: ...
9. **StrutsPrepareAndExecuteFilter**:在较新版本的Struts2中,FilterDispatcher被替换为StrutsPrepareAndExecuteFilter,它合并了原来两个过滤器的功能,提高了性能和可维护性。 10. **插件体系**:Struts2支持...
FilterDispatcher与StrutsPrepareAndExecuteFilter** 在Struts2.0中,FilterDispatcher被StrutsPrepareAndExecuteFilter取代,后者不仅负责请求的拦截,还参与Action的准备和结果的执行,增强了框架的性能。 **8....
3. 容器调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。 4. 控制器通过ActionMapper获得Action的信息。 5. 控制器调用ActionProxy。 6. ActionProxy读取struts.xml文件获取action和interceptor...