Struts1.2初始化流程和具体工作流程

      初始化流程:struts最主要的是中央控制器(ActionServlet),它和其他Servlet一样,ActionServlet的加载取决于Servlet容器(WEB容器)来决定,容器根据配置文件(web.xml)的<load-on-startup>标签决定是在容器启动时加载还是第一次请求到来时加载。不管哪种方式,当ActionServlet加载时,ActionServlet加载并初始化Struts配置文件struts-config.xml,它会把每一个<action>标签的内容生成ActionMapping对象存放在内存中,对于每一个<form-bean>标签会生成ActionFormBean对象存放在内存中等等,最后加载并初始化消息文件到内存中。

   基本工作流程:当完成Struts初始化工作后,以下是一个请求到来时的工作流程。

         1.一个请求到来,在内存中找到与之匹配的ActionMapping对象,如果没有找到这提示请求路径错误信息,如果找到进入第二步;

         2.找到ActionMapping对象对应的formBean,并创建一个实例把请求信息填充到对象中;

         3.根据配置的validate属性决定是否进行表单验证,如果需要则执行formbean的validate方法,如果返回null或者不包含ActionMessage的ActionErrors对象,则表明验证通过,如果不通过则根据配置的input属性的值跳到相应的错误页面;

         4.通过验证后配置的映射对象并创建该Action对象,执行execute方法完成业务逻辑的操作,返回一个ActionForward对象,ActionServlet根据返回的ActionForward对象,生成动态页面并响应给客户端。