从上图可以看出,一个请求在Struts2 框架中的处理大概分为以下几个步骤:
1、客户端初始化一个指向Servlet 容器(例如Tomcat)的请求;
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp 的可选过
滤器,这个过滤器对于Struts2 和其他框架的集成很有帮助,例如:SiteMesh Plugin);
3、接着FilterDispatcher 被调用,FilterDispatcher 询问ActionMapper 来决定这个请求是否需要调用某
个Action;
4、如果ActionMapper 决定需要调用某个Action,FilterDispatcher 把请求的处理交给ActionProxy;
5、ActionProxy 通过Configuration Manager 询问框架的配置文件,找到需要调用的Action 类;
6、ActionProxy 创建一个ActionInvocation 的实例。
7、ActionInvocation 实例使用命名模式来调用,在调用Action 的过程前后,涉及到相关拦截器(Interce
pter)的调用。
8、一旦Action 执行完毕,ActionInvocation 负责根据struts.xml 中的配置找到对应的返回结果。返回结
果通常是(但不总是,也可能是另外的一个Action 链)一个需要被表示的JSP 或者FreeMarker 的模版。在表
示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper。

转载于:https://www.cnblogs.com/cugb-2013/p/3251922.html

Strtus2工作流程及原理相关推荐

  1. mybatis 原理_Mybatis工作流程及其原理与解析

    Mybatis简介: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

  2. 什么是MapReduce,MapReduce的工作流程和原理是什么

    一.MapReduce的概念 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",和它 ...

  3. 详解DNS工作流程及原理 ( 域名、IP与DNS的关系)

    一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其实,DNS是internet的一项服务,一般叫域名服务或者域名解析服务,主要提供网站域名与IP地址的相互转换的服务 ...

  4. socks5代理工作流程和原理

    一.socks5协议 socks5协议是一款广泛使用的代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器, ...

  5. Mybatis 的工作流程及原理

    Mybatis 简介: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数及获取结果集.MyBatis 可 ...

  6. 综述(五)无人驾驶中决策系统的工作流程及原理

    汽车在通过感知系统获取到周围环境的信息后,需要进行最为核心的大脑决策工作,通过采用最优的决策方法,达到安全驾驶汽车的目的.决策结果最终输出给执行模块,实现汽车的加减速.转向.变换车道.超越前车等功能. ...

  7. Mybatis工作流程及其原理与解析

    https://blog.csdn.net/u010890358/article/details/80665753

  8. 综述(三)无人驾驶中感知系统的工作流程及原理

    人在路上行走时,需要有眼睛.耳朵.鼻子.触觉等器官才能感知周围的状况,从而为自己的大脑做决策提供依据.无人驾驶汽车在路上行驶,更加需要感知周围的环境.而且,由于汽车的车载计算机,在智能程度上还远不及人 ...

  9. Maven的工作流程和原理

    Maven的功能 Maven是一个项目管理的工具,使用maven对java项目进行构建.依赖管理 作用 依赖管理 Maven可以对项目所需要的Jar包进行统一管理,有快速引入Jar包和对Jar包进行统 ...

最新文章

  1. 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
  2. Eclipse4.4设备egit插件提交本地项目代码到远程仓库
  3. java 动态字符串_Java动态编译执行一串字符串,类似于Javascript里的eval函数
  4. ASP.NET Core - 在ActionFilter中使用依赖注入
  5. C++string容器-字符串查找和替换
  6. java 共享软件 保护_【Java并发.3】对象的共享
  7. 一、Asp.Net Core WebAPI——修改默认监听端口
  8. 关于计算机音乐编创的论文,音乐论文写作
  9. 安装matpower
  10. springboot+redis实现文章浏览量记录
  11. 水星mw300r虚拟服务器,水星MW300R无线路由器如何设置【组图】
  12. Unity 坐标转换
  13. php实现离线挂机,自动离线挂机脚本下线自动挂机脚本
  14. 使用excel进行数据挖掘(4)---- 突出显示异常值
  15. win10硬盘锁怎么解除_如何解锁BitLocker加密的Win10系统【图文教程】
  16. 微信公众号鸿蒙盾额度认证为什么要交钱,微信公众号收费标准是什么?认证流程介绍!...
  17. [ 工具 ] ___ Browser : Chrome
  18. 单例模式(中):单例模式的弊端
  19. 【从0开始vue】点击后弹出对话框(其他部分变灰度) + 导航栏之间的切换动画
  20. java调用datastage_Datastage重启服务

热门文章

  1. 用inno做setup遇到的一些问题及解决方法
  2. 使用微软的 ilasm 和 ildasm 对. net程序进行编译和反编译
  3. 日志分割工具cronolog
  4. 5904.刺客信条(AC)
  5. EZ的间谍网络(codevs 4093)
  6. MapXtreme 安装、编码及打包注意事项
  7. div模拟textarea文本框,输入文字高度自适应,且实现字数统计和限制
  8. java关于校园共享单车_关于校园文明骑行共享单车倡议书
  9. php如何加载ffmpeg库,安装php扩展 ffmpeg-php
  10. php扩展管理配置信息,PHP扩展管理 - 城市之雾的个人空间 - OSCHINA - 中文开源技术交流社区...