1。读取配置(初始化ModuleConfig对象)
在web.xml中Struts的总控制器ActionServlet被配置成自动启动的Servlet,启动后读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应ModuleConfig对象,如:ActionConfig,ControlConfig,FormBeanConfig,ForwardConfig,MessageResouseConfig..
2.发送请求
用户提交表单或调用URL向WEB应用服务器提交一个请求(如*.do请求),请求的数据用HTTP协议上传给WEB服务器。
3.填充FORM(实例化,复位,填充数据,校验,保存)
ActionServlet在接到请求后,从ActionConfig中找出对应该请求的Action子类,如没有对应的Action,控制器直接转发给JSP或静态页面。如有对应的Action且有相应的ActionForm,ActionForm就被实例化并用HTTP请求的数据填充其属性,并且保存在ServletContext中的request或session中,这样它们就可以被其它Action对象或JSP调用。
4.派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute()方法。
5.处理业务
Action一般包含一个execute()方法,负责执行相应的业务逻辑,(这里可以调用其它的业务模块,如javaBean),完毕返回一个ActionForward对象,控制器通过该ActionForward对象进行转发工作。
6.返回响应
Action根据业务处理的不同结果返回一个目标响应对象给总控制器,该目标响应对象对应一个具体的JSP页面或另一个Action.
7.查找响应
总控制器根据业务功能Action返回的目标响应对象,找到对应的资源对象,通常为一个具体的JSP页面。
8.响应对象
目标响应对象将结果展现给用户目标响应对象(JSP)将结果页面展现给用户。
(摘自传智视频)