您的位置:首页 > 编程语言 > Java开发

Struts2(二)-工作原理

2016-11-17 15:52 232 查看

Struts2请求处理流程

由于大四这段时间要追寻Java方向的工作,所以从网上找了视频来学习。听了马士兵老师讲解的Struts2源码再加上自己笨笨的脑袋深思大概一个周左右,总结出自己对Struts2的小小的认识。在此留下笔记,以便复习。

由于工具作图经验不多,所以就用txt来画图,上图





1:(客户端发送一个请求
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

至此整个流程完毕!码完好爽的感觉有木有!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息