struts2的工作流程和运行原理

先要参考srtuts的官方给出的图:

工作原理:

1.(ActionContextCleanUp
)首先客户端会发送一个请求,然后我们在web.xml配置中有一个strurts2的过滤器,在进入过滤器时,有这个ActionContextCleanUp filter进行处理,(因为struts2在开发中,容易引起众多类集合,而这些类集合并不能在使用完后全部消除,所以apache基金会为了让struts2在运行的过程中能够稳定,就特定的为所有ACTION进行监控,从而让struts2在第一时间知道被废弃的对象,从而使用ActioncontextCleanUp对象中进行销毁,但这里的销毁也是告诉JVM某个对象需要被销毁。)

2.(otherfilters)下面进入其他用户配置或者自定义的flter,执行过滤器链。

3.(flterDispather)核心filter(即flterDispather),它的作用是读取发送过来的请求与actionMapper中的action集合进行匹配是否有这个action,如果匹配到后就进入下一步,没有匹配到就执行失败。

4.(actionproxy)action代理类,在前面的核心控制器匹配到action后从配置读取器读取到的配置信息(是哪个类)生成指定的相应action类的实例。

5.代理类在ActionInvocation这个类中作为一个引用,然后在ActionInvocation这个类中有拦截器(拦截器有配置的)的集合,这个类中的invoke方法里去遍历拦截器,拦截器的intecept方法同时会传入一个ActionInvocation的自身的引用继续执行invoke方法继续执行拦截器。

6.执行完拦截器后就会执行action代理的excecute方法(如果配置了method就执行配置的方法),如果执行完这个后还有其他的拦截器则继续执行intecept后面的方法,再将响应回给客户端。

http://download.csdn.net/detail/u010214269/9009187

链接是自定义实现的struts.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-02 23:42:26

struts2的工作流程和运行原理的相关文章

Struts2的工作流程

Struts2的工作流程 1.客户端浏览器初始化时发出HTTP请求 2.根据web.xml配置,上述请求被FilterDispatcher接收 3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton 4.Action调用业务逻辑组件处理业务逻辑 5.Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面 6.返回HTTP响应到客户端浏览器

struts2核心工作流程与原理

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

深入struts2(三)---工作机制和运行流程图

1     工作原理 1.1     体系架构 图2.1 struts2.0体系架构图 1.2     工作机制 针对上节体系架构图,以下分步说明运行流程 ?  client初始化一个指向Servlet容器(比如Tomcat)的请求: ?  这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其它框架的集成非常有帮助,比如:SiteMesh Plugin): 注:从struts2.1.3后就不须要配

[SSH] Struts2的工作流程

Struts2在Struts的基础上 有了很多的优点 具体的不同 可以参考另一边博文-> Struts2与Struts1的比较 首先整理列出响应流程先后中的一些名词: (1)过滤器(Filter):过滤器,接收到Url的时候就会产生作用. (2)StrutsPrepareAndExecuteFilter(2.1.3之前用的是FilterDispatcher):名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入:后者表示进行过

Struts2完整工作流程

a . 客户发送一个Action请求,请求交给控制器 b . 控制器创建一个ValueStack,将Action压入栈顶 c . 控制器调用ActionInvocation组件执行请求处理 d . ActionInvocation组件调用请求相关的拦截器组件--前部分处理. e . 然后再调用Action组件业务方法 f . 然后再调用Result组件处理方法 g . 最后执行拦截器组件--后部分处理. h . 将响应信息输出,为客户端响应

Struts2工作流程个人解析

前面稍微学习了下Strust2基本使用,对Struts2的工作流程以及底层源码完全不懂,今天打算把Struts2的工作流程好好的摸索一遍. 1.这是一张网上download的struts2工作流程图, 对上图稍做解释: 1.首先客户端/浏览器发送一个请求到服务器,即HttpServletRequest会经过一系列(Fliter)过滤器(ActionContextCleanUp该过滤器是可选过滤器,主要作用就是对ActionContext进行CleanUp操作,不让后续的Fliter清除,延长ac

struts2的工作原理

从图1我们不难看出struts2的工作流程大致分为一下几部分 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action就是提交一个(HttpServletRequest)请求. 2.这个请求经过一系列的过滤器(Filter)如(ActionContextCleanUp.其他过滤器(SiteMesh等). FilterDispatcher).注意:这里是有顺序的,先ActionContext

Struts2 工作流程

在我的理解中Struts2的工作流程大概分为七步: 1.客户端发送HttpServletRequest请求: 2.这个请求经过一系列的过滤器(Filter),最后发送到FilterDispatcher中: 3.FilterDispatcher通过action mapper确定是否有对应的action,如果有,FilterDispatcher就发送到actionproxy中: 4.再由actionproxy查询Struts.xml中对应的action类, 5.actionproxy实例化一个新的对

SSH三大框架的各自工作流程

一.Struts2的工作流程:1.用户在客户端发起请求,客户端会初始化一个servlet容器请求:2.servlet容器把请求会传递给context容器,context容器找到目标web工程.3.进行解析web.xml中的struts标签中的配置: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPr