STRUTS架构

导读:

   STRUTS架构

  STRUTS架构

  Struts Framework[24]是一种基于JAVA的技术,Web应用程序开发者通过Struts Framework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点。Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。

  Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。

  MVC架构

  MVC架构[25]即模型、视图和控制器架构(Model, View, Controller Architecture)。在基于组件的J2EE平台充分内置了灵活性的情况下,剩下的问题可能是如何组织应用程序以实现简单高效的应用程序升级和维护,以及如何让不懂程序代码的人员避开程序数据。答案就是使用模型、视图和控制架构MVC。

  所谓MVC,指的是一种划分系统功能的方法,它将一个系统划分为三个部分:

  模型(Model):封装的是数据源和所有基于对这些数据的操作。在一个组件中,Model往往表示组件的状态和操作状态的方法。

  视图(View):封装的是对数据源模型的一种显示。一个模型可以对应多个视图,而一个视图理论上也可以同不同的模型关联起来。

  控制器(Controller):封装的是外界作用于模型的操作。通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。一般Controller在Model和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。

  MVC实际上是一个高层次的设计模式,它由多个更基本的设计模式组合而成,Model-View的关系实际上是Observer模式,模型的状态和视图的显示相互响应,而View-Controller则是由Strategy模式所描叙的,View用一个特定的Controller的实例来实现一个特定的响应策略,更换不同的Controller,可以改变View对用户输入的响应。而其它的一些设计模式也很容易组合到这个体系中。比如,通过Composite模式,可以将多个View嵌套组合起来;通过FactoryMethod模式来指定View的Controller,等等。

  对于Web 应用来说,与传统应用最明显的区别就是客户机和服务器的无状态连接。这种无状态行为使得模型很难将更改通知视图。在 Web上,为了发现对应用程序状态的修改,浏览器必须重新发出请求来查询服务器。另外,实现视图所用的技术与实现模型或控制器的技术不同。视图采用HTML,WML,XML等,而模型或者控制器则可以采用 C,Perl,Delphi和Java等。

  采用MVC模型的Web应用程序应用界面通常用JSP来产生,本身不包含任何业务逻辑。这些页面构成了MVC架构中的视图。用户界面最终要执行业务逻辑的Form和超链接全部提交给请求的URI,而这个URI映射到一个Servlet,这个Servlet接收和处理改变用户同应用交互状态的所有请求。这个Servlet就是MVC模型中的控制器。控制器收到请求后选择和调用相应的行为类来执行请求的业务逻辑,由行为类来控制应用与用户交互的状态。

  通过使视图完全独立于控制器和模型,就可以轻松替换前端客户程序。并且,通过将控制器和模型代码保持在视图之外,那些不理解这些代码的人员就不能改变他们不应改变的东西。

  将控制器和模型分开可以在不影响模型的情况下改变控制器,也可以在不影响控制器的情况下改变模型 。

  可见,MVC架构具有组件化的优点从而更易于实现对大规模系统的开发和管理,但是开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握。同时新东西的引入会带来新的问题。必须基于MVC组件的方式重新思考和设计应用结构。原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程。所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。

  MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果。

   TOP



本文转自

http://soa.5d6d.com/redirect.php?fid=7&tid=68&goto=nextoldset
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值