struts2 工作原理

struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说

struts2是struts1和Webwork结合的产物。

struts2 的工作原理图:

一个请求在Struts2框架中的处理分为以下几个步骤:

1.客户端发出一个指向servlet容器的请求(tomcat);

2.这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。

3.过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2

的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一

些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,

Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找请求中

需要用到的Action。

4.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象

。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

5.ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了

Action的执行状态,或者说它控制的Action的执行步骤。它持有Action实例和所有的Interceptor。

6.ActionInvocation实例使用命名模式来调用,1. ActionInvocation初始化时,根据配置,加载Action相

关的所有Interceptor。2. 通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。在

调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

7. 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果

通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表

示的过程中可以使用Struts2 框架中继承的标签。

时间: 2024-08-28 22:22:55

struts2 工作原理的相关文章

Struts2工作原理

Struts2工作原理 Struts2请求响应流程: 在struts2的应用 中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping. Configuration Manager.ActionInvocation.Inerceptor.Action.Result等.下面我们来具体看看这些组件有什么联系,它们 之间是怎样在一起工作的. (1)  客户端(Client)向Action发用一个请求(Request)

Struts2工作原理和核心文件

一.Struts2工作原理 如下图: 二.Struts2配置文件 1.web.xml 任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置了web.xml文件的Servlet才会被应用加载 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter加载Struts框架. <?xml version="1.0&

[转]Struts2工作原理

Struts2请求响应流程: 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping.Configuration Manager.ActionInvocation.Inerceptor.Action.Result等.下面我们来具体看看这些组件有什么联系,它们之间是怎样在一起工作的. (1)  客户端(Client)向Action发用一个请求(Request) (2)  Container

Struts2工作原理及流程

Struts2是基于MVC设计模式的JavaWeb 框架技术. 基于Struts2开发Java Web项目的主要步骤如下: (1)在web.xml中配置FilterDispatcher. (2)设计和编写视图组件(JSP页面). (3)编写用来实现视图组件的业务逻辑组件JavaBean. (4)编写视图组件对应的业务控制器Action,在该Action中调用业务逻辑组件JavaBean,进行业务逻辑处理. (5)配置Action,即修改struts.xml配置文件.在struts.xml中配置逻

Struts2工作原理和执行流程图

在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping.Configuration Manager.ActionInvocation.Inerceptor.Action.Result等.下面根据 struts2.0体系架构图来解析这些组件之间的联系. 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 (客户端提交一个HttpServletRequest请求.) 请求被提交

Struts2工作原理及特点

1 客户端发送一个Request请求2 这个请求经过一系列的过滤器(Filter) (先经过ActionContextCleanUp的可选过滤器,然后经过其他过滤器, 最后才经过FilterDispatcher) 3 FilterDispatcher去询问ActionMapper来决定这个请是否需要调用某个Action 4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理 交给ActionProxy(动态代理) 5 ActionProxy通过

struts2学习笔记2 -struts2的开发步骤和工作原理

struts2的开发步骤: 1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form) 2.开发action类,struts2对action并没有过多的要求,只要求: a 推荐实现action接口,或继承actionsupport类 b 为每个请求参数都提供feild,并为之提供相应的setter和getter方法 c 该action类应该有无参数构造器 3.配置action类 所有action都需要放在package里配置. <action>元素有如下属性: name 指定该act

深入研究Struts2(一)---Struts2是什么?它的工作原理是什么?

本文绝对原创, 欢迎转载, 但是转载请记得注明文章出处:http://blog.csdn.net/izard999/article/details/39891281 近4年都在从事Android方 面的工作, 最近换到一家单位做技术主管, 拿到外包的代码发现是Struts2做的, 5年之前对Struts2还是有一定见解的, 但是由于多年不用, 导致还是有些小淡忘,  翻出以前记录的一些笔记和心得, 再加上从官方文档又看到一些版本更新带来的一些新东西, 于是决定再次深入研究一次. 也希望此系列文章

Struts2学习一----------Struts2的工作原理及HelloWorld简单实现

? 版权声明:本文为博主原创文章,转载请注明出处 Struts2工作原理 一个请求在Struts2框架中的处理步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2.这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的继承很有帮助,例如SiteMesh Plugin) 3.接着FilterDispatcher被调用,FilterDispatcher询问Action