Struts是一种基于MVC经典设计模式的开放源代码的应用框架,也是目前Web开发过程当中一种比较成熟的框架。它通过把Servlet,JSP,JavaBean,自定义标签和信息资源整合到一个统一的框架中,为Web开发者提供了高可配置性的MVC开发模式。
Struts体系结构实现了MVC设计模式的概念,它将Model,View,和Controller分别映射到Web应用中的组件。Controller负责控制流程,由ActionServlet负责读取struts-config.xml,并且使用ActionMapping来查找对应的Action,Model由系统提供的Bean,ActionForm和商业逻辑的JavaBean来构建,View是由JSP和Struts提供的自定义标签来实现。
下面我们分别从Struts的配置文件struts-config.xml,控制器,模型,和视图来介绍Struts的体系结构。
(1)配置文件struts-config.xml:当ActionServlet接收HTTP请求的时候,如何决定将用户请求转发到那个Action对象呢?这就需要一些描述用户请求路径和Action映射关系的配置信息。在Struts当中,这些配置信息都存储在特定的XML文件struts-config.xml当中,在该配置文件当中,每一个Action的映射信息都通过一个action元素来配置。这些配置信息在系统启动的时候就会读入内存当中,每一个action元素都对应一个ActionMapping类的实例,供Struts在运行期间使用。
(2)Controller控制器:主要由ActionServlet类和ActionMapping类来实现,ActionServlet类是Struts框架当中的核心组价,主要负责接收HTTP请求信息。根据配置文件struts-config.xml的配置信息,把请求通过ActionMapping转发给合适的Action对象,Action对象负责调用模型的方法,更新表单组件ActionForm的状态,并帮助控制应用程序的流程。
(3)Model模型:主要通过Action更新系统的状态、调用业务逻辑。在Struts中,系统的状态主要由ActionForm Bean来实现,业务逻辑通常由JavaBean或EJB组件来实现。
(4)View视图:主要由JSP建立,Struts自身包含了一组可扩展的自定义标签Taglib,可以简化创建用户界面的过程。