MVC Struts 概述

Struts 概述
一、预备知识
认识 Struts 首先要了解下面的相关知识
1
Framework
       
伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐。
        Framework
的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个 framework 开发上的结构。 简而言之 Framework 就是易于扩展和控制、能提高我们开发效率的程序框架。
2
MVC
       
模型 - 视图 - 控制器( Model-View-Controller )是 80 年代出现的一种软件设计模式,现在已经被广泛的使用。它强制的把应用程序的输入、处理、输出分开,三个核心模块 M-V-C 分别负担不同的任务。
  • 模型(Model
    模型是应用程序的主体部分。模型表示业务数据和业务逻辑,一个模型可以为多个视图提供数据,提高了应用的可重用性。
  • 视图(View视图是应用程序中用户界面相关的部分,视图向用户显示数据,并能接收用户的输入数据,但它并不进行任何实际的业务处理。
  • 控制器(controller)
    控制器工作就是根据用户请求,调用相应的模型组件处理请求,然后调用相应的视图显示模型返回的数据。

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 工作原理
  • 从视图角度(View
    主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。目前包括:Bean TagsHTML TagsLogic TagsNested TagsTemplate Tags 这几个Taglib。有关它们的详细资料请参考struts用户手册
  • 从模型角度(Model
    模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在Struts中,系统的状态主要有ActiomForm Bean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便的与数据库操作
  • 从控制器角度(Controller
    Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由ActionActionMappingActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMappingActionForward则指定了不同业务逻辑或流程的运行方向。
五、Struts优缺点
  • 优点
    Struts
    TomcatTurbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。
    除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。TaglibStruts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
    关于页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
  • 缺点
    Taglib
    Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是当你习惯了它时,你会觉得它真的很棒;
    Struts
    MVCController一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度;
    它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便;
六、为什么要使用Struts框架 
        
其实我们自己也可以实现类似于 Struts 的框架,那为什么要使用 Struts 呢? Struts 是一个开放原代码的应用框架,在最近几年得到了飞速的发展,在 JSP Web 应用开发中应用得非常广泛,有的文献上说它已经成为 JSP Web 应用框架的事实上的标准。下面列举的这些理由是显而易见的:首先,它是建立在 MVC 这种公认的好的模式上的, Struts M V C 上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在 C V 上,因此,它天生就有 MVC 所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到了包括它的发明者 Craig R.McClanahan 在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性。如,现在,它已经与 tiles 融为一体,可以展望,它很快就会与 JSF 等融会在一起。
想了解更多java相关知识,请加入53587861高级java群,验证:阿春.共同探讨未来的新技术.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值