博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2-工作流程概述
阅读量:4636 次
发布时间:2019-06-09

本文共 1075 字,大约阅读时间需要 3 分钟。

 

 

一个请求在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 框架中继承的标签。

转载于:https://www.cnblogs.com/wangjianbg/p/3555570.html

你可能感兴趣的文章
jq--ajax中止请求
查看>>
客户资料查询传递数据格式
查看>>
.Net MVC3中取得当前区域的名字(Area name)
查看>>
(循环练习题) 五只猴子分桃子
查看>>
获得屏幕像素以及像素密度
查看>>
int与string转换
查看>>
adb命令 判断锁屏
查看>>
centos7下安装docker
查看>>
推荐一个MacOS苹果电脑系统解压缩软件
查看>>
命令行编译运行CSharp文件
查看>>
HDOJ 1060 Leftmost Digit
查看>>
1035等差数列末项计算
查看>>
ASP.NET MVC 2示例Tailspin Travel
查看>>
CDMA鉴权
查看>>
ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
查看>>
#include<bits/stdc++.h>包含C++的所有头文件
查看>>
Vue插槽 slot
查看>>
JS 控制input标签只能输入数字
查看>>
遍历 集合 Dictionary 的时候修改集合 方法
查看>>
外籍主管眼中的阿里巴巴
查看>>