Struts1的工作流程图如下所示:
其工作流程如下:
- 当Web服务器启动的时候,根据web.xml文件加载并初始化ActionServlet,根据配置ActionServlet的config参数信息,确定struts-config.xml配置文件存放的位置,并根据Servlet映射配置确定其拦截处理的URL,例如,拦截请求的后缀是.do的UR。根据struts-config.xml中的配置信息,为struts中不同的模块初始化相应的对象。
- 用户通过Web浏览器向Web服务器提交HTTP请求,Web服务器根据用户请求的URL进行不同的操作。如果用户请求的后缀是.do(请求后缀的过滤可以在web.xml中设置),则交由ActionServlet来处理该客户端请求。如果用户端请求的URL后缀不是.do或者在web.xml中没有对应匹配的servlet,则Web浏览器将直接处理,并将处理的结果返回Web浏览器
- ActionServlet接收到客户请求后,根据struts-config.xml文件中注册的ActionForm创建 ActionForm实例对象,并自动填充客户请求中传递来的表单数据到ActionForm Bean对象中。
- ActionServlet根据struts-config.xml文件中注册的Action,将请求转发给对应的Action对象,调用execute()方法处理请求(如读取ActionForm中的数据,调用JavaBean进行业务处理)。
- Action完成任务后,回送ActionForward对象给ActionServlet。
- ActionServlet根据ActionForward对象的内容对相应的JSP页面处理,并将处理后的结果返回Web浏览器。