Struts2请求处理流程
由于大四这段时间要追寻Java方向的工作,所以从网上找了视频来学习。听了马士兵老师讲解的Struts2源码再加上自己笨笨的脑袋深思大概一个周左右,总结出自己对Struts2的小小的认识。在此留下笔记,以便复习。
由于工具作图经验不多,所以就用txt来画图,上图
2:(Tomcat接收到请求后,一系列的过滤器(Filter)会对请求(Request)进行过滤
3:(过滤完成后,StrutsPrepareAndExecuteFilter会被调用
4:(紧接着执行StrutsPrepareAndExecuteFilter里面的DoFilter()方法
5:(在DoFilter()方法里面拿到ActionMapping(url对应着哪个Action)
6:(如果mapping不等于空,就表示ActionMapping已经找到了对应的Action,
接下来的事情就是执行该Action
7:(调用Dispatcher的ServiceAction()方法
8:(在ServiceAction()方法里创建了一个ActionProxy对象,并且调用了ActionProxy对象的execute()方法
9:(execute方法里调用了ActionInvocation(装着一大堆的interceptor拦截器和Action)的invoke()方法
10:(invoke()方法会调用所有的interceotor(拦截器)的intercept()方法
11:(直到interceptor被调用完,开始调用Action
12:(Action返回一个Result
13:(开始回溯,又得穿过所有的拦截器
14:(最后Result信息返回到ActionInvocation产生一个HttpServletResponse
15:(Client接收到Response
至此整个流程完毕!码完好爽的感觉有木有!