Struts1框架以ActionServlet作为核心控制器,整个应用由客户端请求驱动。当客户端向Web应用发送请求时,请求将被Struts1的核心控制器ActionServlet拦截,ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求(实际上,业务逻辑控制器还是控制器,他只是负责调用模型来处理处用请求),当用户请求处理完成后,其处理通过JSP呈现给用户。
对于整个Struts1框架而言,控制器就是它的核心,Struts1的控制器由两个部分组成:核心控制器和业务逻辑控制器。其中核心控制器就是ActionServlet,由Struts1框架提供;业务逻辑控制器就是用户自定义的Action,又应用开发者提供。 对于大部分用户请求而言,都需要得到服务器的处理。当用户发送一个需要得到服务器的处理的请求时,该请求被ActionServlet拦截到,ActionServlet将该请求转发给对应的业务逻辑控制器,业务逻辑控制器调用模型来处理用户的请求;如果用户请求指示希望得到某个URL资源,则由ActionServlet将被请求的资源转发给用户。
Struts1的运行流程: