Struts|Struts2实现原理探究

目录

1 官方图示

2 梳理流程

3 简化流程图示


1 官方图示


 

2 梳理流程

1.发出请求
2.进入框架:经过框架核心控制器(StrutsPrepareAndExecuteFilter,在 web.xml 中配置) StrutsPrepareAndExecuteFilter 是 Struts2 框架核心控制器,负责拦截由 <url-pattern>/*</url-pattern> 指定所有用户请求。
默认情况下,如用户请求路径不带后缀或者后缀以.action结尾,请求将被转入Struts2框架处理,否则Struts2框架将略过该请求。配置文件:struts2-core-2.x.x.x.jar包下的org.apache.struts2/default.properties文件定义的常量决定。
3.查找ActionMapper,委托ActionProxy:核心控制器依次查找ActionMapper来决定是否调用action。如ActionMapper决定调用action,核心控制器就把请求处理器控制权委托给ActionProxy。
4.查找Action:ActionProxy通过configuration manager查询struts框架配置文件(struts.xml)找到所要调用的action类。
5.创建ActionInvocation,激活拦截:Actionproxy创建一个ActionInvocation实例,该实例负责命令模式的实现,包括激活action的任意拦截器。 
6.调用Action方法,查找result,作出响应:在action执行完成后,ActionInvocation实例负责根据action的返回结果码在struts.xml配置文件中找到所需要的 result,该结果通常是jsp或者freemarker模板,也可能是action。 
7.逆序响应拦截器:action配置的拦截器将再次执行(执行顺序和调用的时候相反) 。
8.返回:服务器响应将通过web.Xml文件配置的struts2框架核心控制器返回。 

3 简化流程图示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不甩锅的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值