STRUTS2核心控制器:FilterDispatcher

1. 在 struts1.x 系列中 , 所有的请求是通过一个 servlet(ActionServlet) 来管理控制的 , 在 Struts2.X 而是经过一个 Filter 来处理请求的。 Struts 2 将核心控制器设计成 Filter ,而不是一个普通 Servlet 。 因为设计者为了实现AOP(面向方面 编程)概念.

struts1.x 中

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
。。。
< /servlet>

Struts2.X 中

<filter>
<filter-name>struts2</filter-name>

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

2. Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。

核心控制器:FilterDispatcher 
FilterDispatcher是Struts 2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。

Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts 2调用名为login的Action来处理该请求。 
Struts 2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和 class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。 
Struts 2用于处理用户请求的Act ion实例,并不是用户实现的业务控制器,而是Act ion代理 ——因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。而Struts 2框架提供了系列拦截器,该系列拦截器负责将 HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。 
显然,上面的处理过程是典型的AOP(面向切面编程)处理方式。图3.19显示了这种处理模型。

Struts 2的拦截器和Action从图 3.19中可以看出,用户实现的Action类仅仅是Struts 2的Action代理的代理目标。用户实现的业务控制器(Action)则包含了对用户请求的处理。用户的请求数据包含在HttpServletRequest对象里,而用户的Action类无需访问HttpServletRequest 对象。拦截器负责将HttpServletRequest里的请求数据解析出来,并传给业务逻辑组件Action实例。

STRUTS2核心控制器:FilterDispatcher,布布扣,bubuko.com

时间: 2024-07-29 08:40:10

STRUTS2核心控制器:FilterDispatcher的相关文章

Struts2核心文件

web.xml 任何MVC框架都需要与Web应用整合,这就得借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载.通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于struts2框架而言,需要加载StrutsPrepareAndExecuteFilter,只要Web应用负责加载StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter将会加载struts2框架. struts.xml stru

Spring MVC的核心控制器DispatcherServlet的作用

关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是(  )? 它负责接收HTTP请求 加载配置文件 实现业务操作 初始化上下应用对象ApplicationContext SpringMVC是Spring中的模块,它实现了mvc设计模式,首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用

java开发struts2项目遇到FilterDispatcher过时

由于工作需要,再次需要写一些简单的Java代码了,曾经的Java编程历历在目,但是却再也找不到以前的感觉了.于是便怀着对儿时Java的记忆,再次踏上Java Web Project. 在此特别鸣谢:http://miaoxianjie.iteye.com/blog/1156831作者,是您让我找回了对Java仅剩的那一点点肤浅,接下来,我们入正题吧. struts与Java web的搭建步骤就参照上面的博文就可以了 项目搭建OK,运行    http://localhost:8080/Porta

简单模拟structs2核心控制器利用反射原理实现参数传递和物理视图跳转

在能够运用struct2框架进行简单网站开发后,对structs2的一些较原框架强大的功能希望有更深刻的理解,于是尝试从底层开始摸索,本文就在重新学习structs2后,利用简单代码对核心控制器的主要功能进行理解. 首先,介绍一下struct2的处理流程: 1.浏览器发出请求,即***.action 2.请求被核心控制器的StrutsPrepareAndExecuteFilter拦截 3.搜索structs.xml配置文件,寻找Action的属性name为***的配置信息,而后根据class属性

(二)SpringMVC核心控制器

一.如何配置 Spring MVC 的核心控制器? DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,主要负责职责的分派. 配置 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> &

Struts2 核心流程

1.Struts2架构图  这是Struts2官方站点提供的Struts 2 的整体结构.  执行流程图 2.Struts2部分类介绍  这部分从Struts2参考文档中翻译就可以了. ActionMapper         ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等 java Servlet类的依赖.Struts2中它的默认实现类是DefaultActionMapper,ActionMapper

struts2核心工作流程与原理

Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架.Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品.   上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomca

Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别

在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用"FilterDispatcher",而有的时候用"StrutsPrepareAndExecuteFilter"?两者都可以正常工作,那区别是什么呢? 1. FilterDispatcher 例子  ...<filter>   <filter-name>struts2</filter-name>   <filter-class>     org.ap

Struts2 核心基础总结

学习参考资料: 主: 一个号称从事软件开发超过16年的老外的网站 Apache官网上的Struts2 辅: 一本<深入浅出Struts2> 一本<Struts2技术内幕> 注:笔者会不断修改完善,因为刚开始记笔记,时间比较紧 笔记方法:问题--答案式: 学习策略:先以运行相关具体内容为主,再进行抽象理论描述 **第一问:Struts 2是什么?** 1.Struts2运行框架和核心组件 Struts 2角度:Struts 2运行的框架结构图 Struts 2的五大核心组件分别是: