`
javatgo
  • 浏览: 1134973 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter

 
阅读更多

本人开发遇到一个难题,我想对现在的项目fckedit进行 升级,然后项目的架构是spring struts2 hibernate ,然后我想在struts2中的web.xml文件中调用拦截器,对项目url进行特殊出额里。

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要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!


引用高人的话,最后我调用FilterDispatcher时候,发现struts的bug,它回把所有的请求转发到什么地方去。

而通过使用最新版本的StrutsPrepareAndExecuteFilter则可以很好的解决这个问题。

后续跟进中。。。。。。

分享到:
评论

相关推荐

    org.apache.struts2.dispatcher.FilterDispatcher

    org.apache.struts2.dispatcher.FilterDispatcher

    Struts2基本原理

    Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。 核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。...

    Struts2基础教程.docx

    Struts2的配置和使用与Struts1.x不同,Struts2使用FilterDispatcher作为入口点,而Struts1.x使用ActionServlet。Struts2的 Action类需要从com.opensymphony.xwork2.ActionSupport类继承,而Struts1.x的Action类需要...

    struts核心过滤器FilterDispatcher介绍

    struts核心过滤器FilterDispatcher介绍,struts核心过滤器FilterDispatcher介绍

    新struts2+jQuery所需包.rar

    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher, 新版本中都是过时的了,采取该过滤器, <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。

    struts2流程与流程图

    一个请求在Struts 2框架中的处理大概分为以下几个步骤。...Struts 2的核心控制器是FilterDispatcher,有3个重要的方法:destroy()、doFilter()和Init(),可以在Struts 2的下载文件夹中找到源代码,如代码1所示。

    Struts2详细工作流程

    Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。 3.1.1 核心控制器FilterDispatcher 核心控制器FilterDispatcher是Struts 2框架的基础,包含...

    Struts2的工作原理和流程

    2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,...

    struts2工作原理及拦截器和过滤器

    FilterDispatcher 是 Struts2 框架的心脏,在处理用户请求时,它和请求一起相互配合访问 Struts2 框架的底层结构。 3. 在 Web 容器启动时,Struts2 框架会自动加载配置文件里的相关参数,并转换成相应的类,如 ...

    Struts 2详细工作流程

    Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。 3.1.1 核心控制器FilterDispatcher 核心控制器FilterDispatcher是Struts 2框架的基础,...

    语言程序设计资料:struts2基本配置使用手册.doc

    其中,struts2 是过滤器的名称,org.apache.struts2.dispatcher.FilterDispatcher 是过滤器的类名,而/* 是过滤器的映射关系。 Struts 2.0 的配置文件是 struts.xml,需要在 src 目录下创建该文件,并添加相应的...

    Struts2整合SiteMesh技巧

    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> filter-mapping> ...

    struts2讲义_吴峻申

    1.2.3 FilterDispatcher和Action概述 14 1.2.4 Struts2配置文件处理 15 1.2.5 OGNL介绍和类型转换目的 15 1.2.6 进行校验 16 1.2.7 Web项目国际化根由 16 1.2.8 SiteMesh页面布局框架简介 17 1.3 我们为什么要用...

    Struts2执行流程

    Struts2执行流程 1. web.xml 部署描述符 2. FilterDispatcher 实现StrutsStatics, Filter接口 (1)Filter:一个filter是一个对象用于执行过滤任务为每个请求资源(一个servlet或静态内容),或响应一个资源,或两者.过滤...

    简单理解Struts2中拦截器与过滤器的区别及执行顺序

    在 Struts2 中,过滤器是通过 FilterDispatcher 来实现的,FilterDispatcher 负责四个方面的功能:执行 Actions、清除 ActionContext、维护静态内容和清除 request 生命周期内的 XWork 的 interceptors。 拦截器和...

    struts2开发文档

    ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框 架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来 决定这个请是否需要调用某个...

    Struts2架构剖析

    action command在穿越了一系列Struts2和XWork的拦截器之后,最后执行用户编写的Action类,在Action执行之后,响应还会穿越相同的拦截器(按照与请求相反的顺序),最后通过Struts2的HttpServletResponse转换成Web可...

    Struts2 基本流程

    我们已在前面学习了Servlet 数据库...1. struts2开发环境搭建Eclipse+struts2+tomcat 2. Struts2基本流程 3. 了解核心控制器FilterDispatcher及在web.xml中的配置 4. 了解业务控制器Action及在struts.xml中的配置

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    505) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org....

Global site tag (gtag.js) - Google Analytics