Struts 是一个开放式源代码软件的框架,可帮助您快速且容易地构建 Web 应用程序。它依赖于一些标准技术,例如,Java™ bean、Java servlet、JavaServer Pages(JSP)和 XML。Struts 鼓励采用基于模型 2 方法的应用程序体系结构,模型 2 方法基本上与模型-视图-控制器(MVC)设计模式相同。
使用 Struts 来创建复杂的 Web 应用程序有助于使应用程序可维护性更好。应用程序更易于调试、更易于扩展且更易于理解。
Struts 的核心是 MVC 样式的控制器,它与提供模型和视图的其它技术集成。对于模型,Struts 可与标准数据访问技术(如 JDBC 和 EJB)以及许多第三方包(如 Hibernate、iBATIS 或 Object Relational Bridge)交互。对于视图,Struts 很好地使用 JSP,包括 JSP 标准标记库(JSTL)和 JavaServer Faces(JSF)以及 Velocity 模板、XSLT 和其它表示系统。
http://jakarta.apache.org/struts/index.html
后面各节讨论模型-视图-控制器设计模式和 Struts 技术:
模型-视图-控制器设计模式(在 J2EE 应用程序编程中也称为“模型 2”)是用于编程的公认的设计模式。表 1 总结了 MVC 的三个主要组件。
目的 | 描述 | |
---|---|---|
模型 | 维护数据 | 业务逻辑和一个或多个数据源(如关系数据库) |
视图 | 显示全部或部分数据 | 向用户显示有关模型的信息的用户界面 |
控制器 | 处理影响模型或视图的事件 | 流量控制机制是用户用来与应用程序交互的机制 |
模型 1 和模型 2 的体系结构都将内容生成(业务逻辑)与内容表示(HTML 格式)分离开。模型 2 与模型 1 的不同之处在于:在该位置,成批请求处理是由控制器执行而不是在 JSP 页中执行的。
在 JSP 模型 1 体系结构中,JSP 页单独处理进入的请求并应答客户机,如图 1 所示。
在 JSP 模型 2 体系结构中,servlet 处理请求,创建 JSP 文件使用的任何 bean 或对象,然后转发请求,如图 2 中所示。
表 2 显示了帮助您确定何时模型 1 或模型 2 更适用的条件:
条件 | 模型 1 | 模型 2 |
---|---|---|
Web 应用程序的类型 | 简单 | 复杂 |
开发者任务的性质 | 快速建立原型 | 创建要修改或维护的应用程序 |
执行工作的人员 | 同一个小组完成视图和控制器 | 不同的小组完成视图和控制器 |
模型 2 的 Struts 实现使用特定类型的 servlet(称为操作 servlet)以及一个或多个操作和操作映射来实现控制器。它还使用特定类型的 Java bean(称为表单 bean)。如图 3 中所说明的,Web 服务器在运行时包含模型 2 Web 应用程序的视图和控制器组件,而第三层(它通常在 Web 服务器的外面)包含模型。
Struts 对 MVC 组件的作用,如表 3 所示。
组件 | 作用 |
---|---|
模型 | 无直接作用。然而,Struts 操作和配置文件提供了一个很好的控制调用模型组件的情况的方法。 |
视图 |
|
控制器 |
|
将模型-视图-控制器分部模式应用于动态 Web 应用程序开发有几个优点:
除了对程序本身所进行的工作外,只需对配置文件或名称服务器内容进行调整,而不需要对其它源代码进行调整。