Struts2(原理结构图)

Struts2(原理结构图)



Struts2的执行步骤: (面试题)

-----------------------------------------------------------

①.客户端发送请求;

②.该请求经过一系列的过滤器(Filter):其中可选过滤器ActionContextCleanUp,帮助Struts2和其他框架集成。例如:SiteMeshPlugin。

③.接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper,来决定该请求是否需要调用某个Action。

④.若ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。

⑤.ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

⑥.ActionProxy创建一个ActionInvocation的实例。

⑦.ActionInvocation实例调用Action的前后,涉及到相关拦截器(Intercepter)的调用。

⑧.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果是一个JSP或其他页面(也可以是其他的Action链)。JSP页面展现可使用Struts2框架中的标签(该过程会涉及ActionMapper)。

在上述过程中所有的对象(Action、Interceptors、Results等)都由xwork容器中的ObjectFactory创建。



Struts2(原理结构图)