1. 请求发送给 StrutsPrepareAndExecuteFilter

2. StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 Struts2 请求(即是否返回一个非空的 ActionMapping 对象)

3. 若 ActionMapper 认为该请求是一个 Struts2 请求,则 StrutsPrepareAndExecuteFilter 把请求的处理交给 ActionProxy

4. ActionProxy 通过 Configuration Manager 询问框架的配置文件,确定需要调用的 Action 类及 Action 方法

5. ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化,之后调用ActionInvocation的Invocation方法,在方法中,对Intercepter.hasNext()进行判断,若有Intercepter,则调Intercepter的intecepor()方法,之后再调其中的 invocation.invoke()返回。

6. ActionInvocation 实例在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

7. Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。调用结果的 execute 方法,渲染结果。在渲染的过程中可以使用Struts2 框架中的标签。

8. 执行各个拦截器 invocation.invoke() 之后的代码

 

9. 把结果发送到客户端

转载于:https://www.cnblogs.com/yunger/p/5797997.html

strutr2运行流程相关推荐

  1. 2021年大数据Hadoop(二十七):YARN运行流程

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn运行流程 本系列历史文章 2021年大数据Hado ...

  2. HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程

    在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ...

  3. python爬虫流程-Python爬虫程序架构和运行流程原理解析

    1 前言 Python开发网络爬虫获取网页数据的基本流程为: 发起请求 通过URL向服务器发起request请求,请求可以包含额外的header信息. 获取响应内容 服务器正常响应,将会收到一个res ...

  4. WordPress 运行流程分析

    2019独角兽企业重金招聘Python工程师标准>>> WordPress 的运行流程如下图所示: 整个wp的程序结构比较特别,也不象一些普通的面向过程,也不是MVC,总之就是他自己 ...

  5. Python爬虫:scrapy 的运行流程和各模块的作用

    scrapy的运行流程 爬虫 -> 起始URL封装Request -> 爬虫中间件 -> 引擎 -> 调度器(Scheduler): 缓存请求, 请求去重 调度器 -> ...

  6. MyBatis的架构和其运行流程

    0x00:MyBatis 架构组成 MyBatis 整体的架构组成为:数据源配置文件.SQL 映射配置文件.会话工厂.会话.执行器以及底层封装对象组成. 0x01:数据源配置文件 对于持久层框架,连接 ...

  7. 一个对象的内存图及运行流程和3个对象的内存图的运行流程

    内存图运行流程(大致流程) 1.执行main方法 2.对象创建 3.创建一个新的对象,值为空 4.生成地址,并将空值输出 5.栈中地址就指向新对象的地址 6.方法区的地址值 7.堆中对象存有方法区的地 ...

  8. python基础爬虫的框架以及详细的运行流程

    网络爬虫是什么? 网络爬虫就是:请求网站并提取数据的自动化程序 网络爬虫能做什么? 网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和 ...

  9. Apache Shiro的运行流程和权限控制方式分析

    Apache Shiro的运行流程和权限控制方式分析 Shiro的架构有3个主要的概念: Subject SecurityManager Realms 下面的关系图是关于这些组件是如何交互的高级概述. ...

最新文章

  1. linux remote
  2. MarkDown常用技巧总结
  3. python mysql 保存csv_使用Python将csv文件快速转存到Mysql
  4. Uva 1025 - A Spy in the Metro(DP)
  5. 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
  6. 获取referer中的请求参数_http请求的referer属性
  7. Node.js meitulu图片批量下载爬虫1.01版
  8. HadoopYarn设置Fair Scheduler公平调度器
  9. 调用excel加载项实现多元回归方程求解
  10. 高中计算机兴趣班一般学什么内容,高中主要学什么课程 有哪些科目
  11. 计算机c盘无法扩展,C盘不够大怎么办 怎么扩展C盘容量合并硬盘分区
  12. java 象限分析_四象限分析法
  13. iphone相册储存空间已满_iPhone老提示储存空间已满的具体处理操作
  14. 地图标识符号大全_微信小游戏大全:炮火荣耀!我再也不玩游戏了!
  15. 企业付款到零钱(微信)
  16. 计算机竞赛的数学知识,可以参加的数学类和计算机类竞赛有哪些?
  17. 【Qt】Qt发展历史
  18. VB程序安装时,提示acmboot.exe发送错误
  19. SQL错误:违反唯一约束条件
  20. 计算机手机等现代化,LED大屏在演播室应用.doc

热门文章

  1. vue搭建后可以改下全局配置
  2. linux 下 eclipse 开发环境的搭建
  3. this-is-how-we-troubleshoot-windows-interoperability-issues-in-the-open-specifications-support-team/
  4. nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
  5. Asp.Net自学笔记...(运算符)
  6. Django项目调用外部程序soffice报错subprocess.CalledProcessError: Command 'soffice --headless --convert-to pdf
  7. 初识贪心——调度问题
  8. java回调函数(全干货)
  9. oracle aia,[zz] What Are Oracle AIA, PIP and How Do They Work?
  10. 解决Oracle 本地可以连接,远程不能连接问题