1.客户端初始化一个指向Servlet容器的请求,
2.这个请求经过一系列的过滤器(ActionContextClearUp等)
3.FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否调用某个Action.
4.如果ActionMapper决定调用这个个Action,FilterDispatcher就把请求的处理交给ActionProxy;
5.ActionProxy通过Configuration Manager询问配置文件,找到需要调用的Action
6.ActionProxy创建一个ActionInvocation的实例
7.ActionInvocation的实例是使用命令模式来调用的,在调用action的过程前后,涉及到相关拦截器(interceptor)
8.一旦Action执行完毕,Actioninvocation负责根据struts.xml中的配置文件找到相应的返回结果
org.apache.struts2.dispatcher.FilterDispatcher的作用:
1.执行Actions
过滤器通过ActionMapper对象来判断是否被映射到Action,如果ActionMapper允许被映射,过滤链将会被终止
2.清除ActionContext
过滤器为了确保内存溢出会自动的清除ActionContext
3.维护静态内容
4.清除request生命周期内的XWork的interceptors
ActionInvocation就是Action的调用者。ActionInvocation在Action的执行过程中,负责Interceptor、Action和Result等一系列元素的调度。