1. 读取配置。初始化 ModuleConfig 对象,对web.xml中配置成自动启动的 ActionServlet ,读取 struts-config.xml 的配置信息,为不同的struts模块化初始化相应的ModuleConfig 对象

2. 发送请求。客户端提交表单,调用URL请求的数据,通过HTTP协议发送给Web服务器。

3. 填充form(实例化,复位,填充数据,校验,保存)

从 ActionConfig 中找出对应请求的Action子类,如没有对应的Action,控制器直接转发给JSP或静态页面;如存在对应的Action且这个Action存在对应的一个ActionForm,则ActionForm 被实例化,并使用HTTP请求中的数据填充其属性,并保存在ServletContext中(即Request或Session中),这样就可以被其他的Action对象或jsp调用到。

4. 派发请求。控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute方法。

5. 处理业务。通常Action包含一个execute方法,它负责执行相应的业务逻辑(或调用其他业务模块)。执行完毕后返回一个ActionForward对象,来执行转发工作。

6. 返回响应。Action根据业务处理的不同结果,返回一个目标响应对象给总控制器ActionServlet,该目标响应对象对应一个具体的jsp页面或另一个Action。

7. 查找响应(翻译响应)。总控制器根据业务功能Action返回的目标响应对象,找到对应的资源对象,通常是一个具体的jsp页面。

8. 响应用户。目标响应对象将结果展现给用户目标对象(jsp)将结果页面展示给用户。