strutr2运行流程
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运行流程相关推荐
- 2021年大数据Hadoop(二十七):YARN运行流程
全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn运行流程 本系列历史文章 2021年大数据Hado ...
- HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程
在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ...
- python爬虫流程-Python爬虫程序架构和运行流程原理解析
1 前言 Python开发网络爬虫获取网页数据的基本流程为: 发起请求 通过URL向服务器发起request请求,请求可以包含额外的header信息. 获取响应内容 服务器正常响应,将会收到一个res ...
- WordPress 运行流程分析
2019独角兽企业重金招聘Python工程师标准>>> WordPress 的运行流程如下图所示: 整个wp的程序结构比较特别,也不象一些普通的面向过程,也不是MVC,总之就是他自己 ...
- Python爬虫:scrapy 的运行流程和各模块的作用
scrapy的运行流程 爬虫 -> 起始URL封装Request -> 爬虫中间件 -> 引擎 -> 调度器(Scheduler): 缓存请求, 请求去重 调度器 -> ...
- MyBatis的架构和其运行流程
0x00:MyBatis 架构组成 MyBatis 整体的架构组成为:数据源配置文件.SQL 映射配置文件.会话工厂.会话.执行器以及底层封装对象组成. 0x01:数据源配置文件 对于持久层框架,连接 ...
- 一个对象的内存图及运行流程和3个对象的内存图的运行流程
内存图运行流程(大致流程) 1.执行main方法 2.对象创建 3.创建一个新的对象,值为空 4.生成地址,并将空值输出 5.栈中地址就指向新对象的地址 6.方法区的地址值 7.堆中对象存有方法区的地 ...
- python基础爬虫的框架以及详细的运行流程
网络爬虫是什么? 网络爬虫就是:请求网站并提取数据的自动化程序 网络爬虫能做什么? 网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和 ...
- Apache Shiro的运行流程和权限控制方式分析
Apache Shiro的运行流程和权限控制方式分析 Shiro的架构有3个主要的概念: Subject SecurityManager Realms 下面的关系图是关于这些组件是如何交互的高级概述. ...
最新文章
- linux remote
- MarkDown常用技巧总结
- python mysql 保存csv_使用Python将csv文件快速转存到Mysql
- Uva 1025 - A Spy in the Metro(DP)
- 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
- 获取referer中的请求参数_http请求的referer属性
- Node.js meitulu图片批量下载爬虫1.01版
- HadoopYarn设置Fair Scheduler公平调度器
- 调用excel加载项实现多元回归方程求解
- 高中计算机兴趣班一般学什么内容,高中主要学什么课程 有哪些科目
- 计算机c盘无法扩展,C盘不够大怎么办 怎么扩展C盘容量合并硬盘分区
- java 象限分析_四象限分析法
- iphone相册储存空间已满_iPhone老提示储存空间已满的具体处理操作
- 地图标识符号大全_微信小游戏大全:炮火荣耀!我再也不玩游戏了!
- 企业付款到零钱(微信)
- 计算机竞赛的数学知识,可以参加的数学类和计算机类竞赛有哪些?
- 【Qt】Qt发展历史
- VB程序安装时,提示acmboot.exe发送错误
- SQL错误:违反唯一约束条件
- 计算机手机等现代化,LED大屏在演播室应用.doc
热门文章
- vue搭建后可以改下全局配置
- linux 下 eclipse 开发环境的搭建
- this-is-how-we-troubleshoot-windows-interoperability-issues-in-the-open-specifications-support-team/
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
- Asp.Net自学笔记...(运算符)
- Django项目调用外部程序soffice报错subprocess.CalledProcessError: Command 'soffice --headless --convert-to pdf
- 初识贪心——调度问题
- java回调函数(全干货)
- oracle aia,[zz] What Are Oracle AIA, PIP and How Do They Work?
- 解决Oracle 本地可以连接,远程不能连接问题