Struts
概述
|
一、预备知识
认识 Struts 首先要了解下面的相关知识 1 、Framework 伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐。 Framework 的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个 framework 开发上的结构。 简而言之 Framework 就是易于扩展和控制、能提高我们开发效率的程序框架。 2 、MVC 模型 - 视图 - 控制器( Model-View-Controller )是 80 年代出现的一种软件设计模式,现在已经被广泛的使用。它强制的把应用程序的输入、处理、输出分开,三个核心模块 M-V-C 分别负担不同的任务。
![]() 图 1 MVC 的结构及工作原理
MVC
的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
二、背景介绍 尽管 MVC 设计模式很早就出现了,但在 WEB 应用的开发中引入 MVC 一直难以实现。早期的 Java Web 开发应用中, JSP 文件负责业务逻辑、控制网页流程并创建 HTML ,这给 WEB 开发带来了强耦合、调试困难、程序处理逻辑复杂等等问题 ,如图 2 。为了解决这些问题 SUN 在 JSP 出现早期制定了两种规范,称为 Model1 (图 2 )和 Model2 (图 3 )。虽然 Model1 在一定程度上实现了 MVC ,但是它的应用并不尽如人意,直到 Model2 问世才得以改观。 ![]() 图 2 ![]() 图 3 JSP Model1 ![]() 图 4 JSP Model2
??????? model2
容易使系统出现多个
Controller
,并且对页面导航的处理比较复杂,有些人觉得
model2
仍不够好,于是
Craig R. McClanahan 2000
年
5
月提交了一个
WEB framework
给
Java Community
。这就是后来的
Struts
。
2001 年 7 月, Struts1.0 ,正式发布。该项目也成为了 Apache Jakarta 的子项目之一。 三、什么是Struts 综上所述很容易理解, Struts 就是在 JSP Model2 的基础实现了 MVC 设计模式的 WEB Framework 。 基于 Struts 构架的 WEB 应用程序基本上符合 JSP Model2 的设计标准,可以说是 MVC 设计模式的一种变化类型。整个 Struts 大约有 15 包,近 200 个类所组成。 Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用 MVC 设计模型来开发 Web 应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用 Servlets 和 JSP 的优点来建立可扩展的应用, Struts 是一个不错的选择。 四、Struts的体系结构 Struts 由一组相互协作的类、 Serlvet 以及丰富的标记库 (jsp tag lib) 和独立于该框架工作的实用程序类 (Validator) 组成。 Struts 有其自己的控制器( Controller ),同时整合了其他的一些技术去实现模型层( Model )和视图层( View )。在模型层, Struts 可以很容易的与数据访问技术相结合,包括 EJB,JDBC 和 Object Relation Bridge 。在视图层, Struts 能够与 JSP, Velocity Templates,XSL 等等这些表示层组件想结合。 Struts framework 是 MVC 模式的体现,下面我们就从分别从模型、视图、控制来看看 struts 的体系结构( Architecture )。下图显示了 struts framework 的体系结构响应客户请求时候,各个部分工作的原理。 图 5 Struts 工作原理
五、Struts优缺点
六、为什么要使用Struts框架
其实我们自己也可以实现类似于 Struts 的框架,那为什么要使用 Struts 呢? Struts 是一个开放原代码的应用框架,在最近几年得到了飞速的发展,在 JSP Web 应用开发中应用得非常广泛,有的文献上说它已经成为 JSP Web 应用框架的事实上的标准。下面列举的这些理由是显而易见的:首先,它是建立在 MVC 这种公认的好的模式上的, Struts 在 M 、 V 和 C 上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在 C 和 V 上,因此,它天生就有 MVC 所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到了包括它的发明者 Craig R.McClanahan 在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性。如,现在,它已经与 tiles 融为一体,可以展望,它很快就会与 JSF 等融会在一起。
想了解更多java相关知识,请加入53587861高级java群,验证:阿春.共同探讨未来的新技术.
|
MVC Struts 概述
最新推荐文章于 2021-02-13 13:37:14 发布