首先,看看struts2框架的执行结构图
工作流程总结:
1.客户端通过Action或JSP页面发出一个HttpServlet请求
2.服务器通过web.xml配置,将该请求经过一系列Filter过滤器处理,最终被FilterDispacher接收
3.FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个request
4.是的就把请求交给ActionProxy,ActionProxy则通过Configuration Mannager来解读配置文件struts.xml,找到对应的Action类
5.ActionProxy会创建一个ActionInvocation实例,通过代理模式调用Action(中间会经过一系列拦截器)
6.Action执行完毕,返回一个result的字符串(以相反的顺序经过拦截器)
7.根据result字符串在struts.xml配置文件中找到对应的响应结果,通过HttpServletResponse返回