[SSH] Struts2的工作流程

Struts2在Struts的基础上 有了很多的优点 具体的不同 可以参考另一边博文-> Struts2与Struts1的比较

首先整理列出响应流程先后中的一些名词:

(1)过滤器(Filter):过滤器,接收到Url的时候就会产生作用。

(2)StrutsPrepareAndExecuteFilter(2.1.3之前用的是FilterDispatcher):名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的 action去处理。

(3)ActionProxy:ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法。归根到底,最后调用的是DefaultActionInvocation.invokeAction()方法。

(4)ConfigurationManager:一般是读取struts.xml。

(5)ActionInvocation:为每一个Action产生一个实例,进行调度。

(6)Interceptor : 同样作为拦截器,只对Action产生作用。

流程图示(对通用图的一个改进):

文字描述:

(1)客户端初始化一个指向Servlet容器(如Tomcat)的request请求。

(2)容器通过web.xml映射获得相应控制器的名字。

(3)请求首先经过一系列的过滤器(ActionContextCleanUp等)。

(4)接下来调用控制器StrutsPrepareAndExecuteFilter,通过ActionMapper获得是否要调用某个Action。

(5)将权力转交给ActionProxy,来处理相应的requset。

(6)ActionProxy通过ConfigurationManager在struts.xml中找到对应的Action信息和相应的Interceptor Stack信息。

(7)ActionProxy创建以个ActionInvocation实例。

(8)ActionInvocation采用命名模式来调用相应的Action,其中按照Interceptor Stack信息先后调用拦截器。

(9)根据Action的配置信息,对request产生result。

(10)result反向通过Interceptor返回给ActionInvocation。

(11)ActionInvocation产生一个HttpServletResponse相应。

(12)将相应发送给客户端。

时间: 2024-10-08 22:00:59

[SSH] 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的工作流程和运行原理

先要参考srtuts的官方给出的图: 工作原理: 1.(ActionContextCleanUp )首先客户端会发送一个请求,然后我们在web.xml配置中有一个strurts2的过滤器,在进入过滤器时,有这个ActionContextCleanUp filter进行处理,(因为struts2在开发中,容易引起众多类集合,而这些类集合并不能在使用完后全部消除,所以apache基金会为了让struts2在运行的过程中能够稳定,就特定的为所有ACTION进行监控,从而让struts2在第一时间知道被

struts2核心工作流程与原理

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

Struts2完整工作流程

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

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

Struts2工作流程个人解析

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

Struts2 工作流程

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

struts2的工作原理

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

01SpringMvc_初识工作流程

我们首先要知道用SpringMVC开发需要什么包? 我们需要导入springioc,springweb , springmvc相关的jar包. 有关Spring的jar包的用途如下: 所以我们用Springmvc开发是的jar包如下: 在讲解SpringMVC的工作流程之前先介绍下Struts2.的工作流程. 第一步:发送请求到服务器,产生了HttpServletRequest和请求,这个请求经过了other filters过滤器和Strute2的核心过滤器之后来到了ActionMapper(S