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对象拿着结果,再把所有的拦截器过一遍
struts2运行流程笔记大话
最新推荐文章于 2022-10-20 01:19:25 发布