Struts2核心图如下:
下面解析struts的流程:
1.客户端发送请求到服务器。服务器接受,将HttpServletRequest传进来。
2.请求经过一系列过滤器(如:ActionContextCleanUp、SimeMesh等)。
3.FilterDispatcher被调用。FilterDispatcher调用ActionMapper来决定这个请求是否要调用某个Action。
4.ActionMapper决定调用某个ActionFilterDispatcher把请求交给ActionProxy。
5.ActionProxy通过Configuration Manager 查看struts.xml,从而找到相应的Action类。
6.ActionProxy创建一个ActionInvocation对象。
7.ActionInvocation对象回调Action的execute方法。
8.Action执行完毕后,ActionInvocation根据返回的字符串,找到对应的result。然后将result内容通过HttpServletResponse返回给服务器。