struts2运行流程笔记大话

来源:互联网 发布:熊族软件 编辑:程序博客网 时间:2024/05/16 08:09

tomcat接收来自浏览器的请求,找到url中的项目名称,tmpm,到wepapp里面找到tmpm的app找到项目里面的web.xml文件,查找当前的请求怎么处理,struts2里面的所有.action的请求都交给filterdispather这个过滤器来处理web容器会获取filterdispather这个实例,然后调用doFilter方法,filterdispathcer是前端控制器,是struts2的核心,请求通过层层过滤器,最后到达了filterdispatcher过滤器filterdispatcher把请求交给actionMapper,actionMapper查找请求是否有相关的映射,查到后,告知filterdispather这个请求需要处理,filter知道后就实例化一个actionproxy,ap这玩意刚出来,不知道自己要处理什么action,他手里只有一个从filterdispatcher拿过来的url,怎么办呢,他回去找到管理员configmanager,cm负责维护struts.xml,cm是一个很牛逼的家伙,他相当于struts.xml在内存里面的印象,(不是太明白) ok,服务器项目一起起来,cm就会把struts.xml的信息写到内存里面缓存起来,所以说当有请求到达这一步时cm就可以直接到内存里面读取antion在struts.xml的映射ok,cm找了一会,很快找到了,告诉actionProxy这个请求对应什么action以及其他的信息。ok,这个时候 着手建立actioninvocation,actionInvocation负责action调用的全过程,ai是个非常牛逼的家伙,他会调用拦截器,ok一个一个的拦截器都通过了(action里面的对象都有数据了,数据怎么赋值的,就是这边的拦截器干的),好了就到了我们的action,执行execut方法,执行完毕会返回一个result,ok这时候还不会直接把result返回,response对象拿着结果,再把所有的拦截器过一遍