首页 > 其他分享 >struts2的执行机制

struts2的执行机制

时间:2023-03-27 19:32:49浏览次数:112  
标签:web 调用 ActionInvocation application struts2 Action 机制 执行 StrutsPrepareAndExecute


struts2是web应用中一个常用的mvc框架,下面探讨一下其内部运行机制:

1.从客服端浏览器输入的url后,客服端通过http协议发送一个请求到服务器(tomcat),Tomcat收到这个请求之后,它会查看你请求的是哪一个web  application(一般是一个项目),接着将请求交给对应的web application处理;

2.web application的处理过程:首先读取web.xml文件,通过filter过滤url,然后调用filter-class对应的类StrutsPrepareAndExecuteFilter;

3 接着StrutsPrepareAndExecuteFilter被调用,StrutsPrepareAndExecuteFilter询问ActionMapper来决定这个请是否需要调用某个Action
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。

标签:web,调用,ActionInvocation,application,struts2,Action,机制,执行,StrutsPrepareAndExecute
From: https://blog.51cto.com/u_16034393/6152977

相关文章

  • tomcat的类加载机制
    看完了Java类装载器,我们再来看看利用服务器(Tomcat)对类加载器的利用,每个利用服务器都有一套自己的类加载器系统,从而与Java的类加载器差异开以到达自己与利用过程隔绝的......
  • ABP VNext 的日志机制 + SeriLog
    **ABPVNext的日志机制**正用ABPVNext做个系统,由于框架默认带来日志处理机制,开发阶段基本能用,也一直没有去动它,快要上线了,思考了一下正式环境的日志管理流程,由于系统不......
  • 查看执行计划
    explainanalyzeverboseselect*fromt2,t3wheret2.n1=t3.n2;QUERYPLAN......
  • 为什么要执行产值冲减的原因--因为系统设计的逻辑问题--产值冲减、工程结算、收入台账
    1.系统设计时间逻辑的问题1.PM系统的时间逻辑flowchartLRA["产值冲减(时间A:统计月份)"]-->B["工程结算(时间B:结算月份)"]-->C["收入台账(时间C:统计月份)"]2.问题的发生......
  • mysql执行计划explain
    https://www.cnblogs.com/developer_chan/p/9211487.html 重点梳理:当Extra含有Usingindex,说明查询语句中使用了索引覆盖type的好坏:system:表中只有一行数据,特例,一般......
  • java远程链接SSH,并执行命令
    远程连接SSh,可以配合webhook使用,自动打包处理,在docker部署下,是一种成本很小但是很实用的方案。本方案使用ssh2进行链接。正常来说有两种链接方式,这里选择startShell,这种方式......
  • 自适应巡航控制算法ACC 自适应巡航控制算法 由控制层和执行层组成
    自适应巡航控制算法ACC自适应巡航控制算法由控制层和执行层组成控制层主要包括加速度计算模块,速度控制模块,距离控制模块执行器的控制层主要包括:加减速控制模块仅供学......
  • HashMap和LinkedHashMap遍历机制
    原文链接:HashMap和LinkedHashMap遍历机制对HashMap和LinkedHashMap遍历的几种方法以HashMap为例,LinkedHashMap方法一样。一共有三种遍历方式Iterator<Map.Entry......
  • ORACLE SQL中执行先后次序的问题
    分享一个经验需求:Oracle中,根据COST优先级取最优先的一条记录脚本:select...from...where...andrownum=1orderbycost实际不能如愿,取得的结果不是最优先的。......
  • c#动态执行字符串脚本(优化版)
    像javascript中有eval()来执行动态代码,c#中是没有的,于是自己动手丰衣足食,先来代码1usingSystem;2usingSystem.Data;3usingSystem.Configuration;4us......