用户以*.do方式发出请求(该请求能找到ActionServlet);
当ActionServlet收到一个客户请求时,根据struts-config.xml找到相关的action信息。
1.检索和用户相匹配的ActionMapping实例。如果不存在,就返回请求路径无效。
2.如果ActionForm实例不存在,就创建一个ActionForm实例,把客户提交的表单信息保存在一个ActionForm对象中。
3.根据配置信息,决定是否需要表单验证,如果需要,就调用ActionForm中的validate()方法。
4.如果ActionForm中的validate()方法返回Null或者返回一个不包含ActionMessage的ActionError对象,就表示表单验证成功。
5.ActionServlet根据ActionMapping实例包含的映射信息,决定将请求转发给哪一个action,如果action不存在,就创建一个实例(action只有一个),然后调用action的execute()方法。
6.Action的execute()方法,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向JSP组件。
7.ActionForward对象指向的JSP组件生成动态网页返回客户。(如果表单验证失败,ActionServlet将直接把请求转发给Action注册信息中Input指定的JSP组件,此时不会再创建Action对象)