Struts2运行流程
1,请求发送给StrutsPrepareAndExecuteFilter
2, StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(是则返回对应ActionMapping对象否则为null)
3,若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求处理交给ActionProxy
4, ActionProxy通过Configuration Manager询问框架的配置文件,确定需要调用的Action类以及Action方法
5,ActionProxy创建一个ActionInvacation实例,并经行初始化
6,ActionInvacation实例在调用Actio过程前后调用配置的Intercepter
7,Action执行完毕后,ActionInvacation负责根据struts.xml中的配置找到对应的返回结果。调用结果的execute方法,渲染结果。渲染的过程中可以使用Atruts2框架中的标签
8,执行各个拦截器invacation.invoke()之后的代码
1,请求发送给StrutsPrepareAndExecuteFilter
2, StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(是则返回对应ActionMapping对象否则为null)
3,若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求处理交给ActionProxy
4, ActionProxy通过Configuration Manager询问框架的配置文件,确定需要调用的Action类以及Action方法
5,ActionProxy创建一个ActionInvacation实例,并经行初始化
6,ActionInvacation实例在调用Actio过程前后调用配置的Intercepter
7,Action执行完毕后,ActionInvacation负责根据struts.xml中的配置找到对应的返回结果。调用结果的execute方法,渲染结果。渲染的过程中可以使用Atruts2框架中的标签
8,执行各个拦截器invacation.invoke()之后的代码
9,将结果发送到客户端
下面使用尚硅谷佟刚老师的一张图哎!就不ps了应该不会告我导图吧
其实最好是打开源码直接一步步观察流程,最能搞清楚了