MVC设计思想---Javaweb

 

MVC设计思想:


MVC设计思想的好处:

随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越 
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。 
其中是逻辑上的划分。 
三层体系结构是将整个系统划分为如图2.1所示的结构[3] 

 

(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。 
该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时 
系统提供数据验证功能。 
2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务 
相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻 
辑层主要面向业务应用,为表示层提供业务服务。 
3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数 
据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。 
三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分, 
各层与其余层分离,但各层之间存有通信接口。 
采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高,在 
资源分配策略设计合理运用的同时,软件的性能指标也得到提升,系统的安全性和易管
理性也得到改善。 
三层体系结构对Web应用的软件架构产生很大影响,促进了基于组件的设计思想, 
产生了许多开发Web层次框架的实现技术。较之两级结构来说,三层结构修改和维护上 
更加方便。目前开发B/S结构的Web应用系统广泛采用这种三层体系结构。 

MVC模式 : 
MVC Model-View-Control 的简称,即模型-视图-控制器。它是一个存在于服务器 
表达层的模型,它将应用分开,改变应用之间的高度耦合。 
MVC 是在 20 世纪 80 年代发明的一种软件设计模式,至今已被广泛使用,最近几年 
被推荐为 Sun 公司 J2EE 平台的设计模式。 

MVC 模式结构 
MVC 模式将应用分为模型、视图和控制器三个部分: 
1. 视图:数据的展现。 
视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。 
2. 模型:应用对象。 
模型是应用程序的主体部分。 模型代表了业务数据和业务逻辑; 当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。 
3. 控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。 
Web 用户单击 Web 页面中的提交按钮来发送 HTML 表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

 

MVC 模式运行机制 
如图 2.2 所示为 MVC 模式运行机制

 

 

2、为什么要在Web应用中使用MVC架构

 

用户界面逻辑的更改往往比业务逻辑频繁,尤其是在基于Web的应用程序中。例如,可能添加新的用户界面页,或者可能完全打乱现有的页面布局。对显示的更改,尽可能地不要影响到数据和业务逻辑。

 

目前大部分Web应用都是将数据代码和表示混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用需要一些额外的工作,但它带来的好处是无庸质疑的。

 

2.1 提高代码重用率

 

最重要的一点是多个视图能共享一个模型,无论用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码。

 

2.2 提高程序的可维护性

 

因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变数据层和业务规则[3]。例如,把数据库从MySQL移植到Oracle,或者把基于RDBMS数据源改变到LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自哪里,视图都会正确的显示它们。MVC架构的运用,使得程序的三个部件相互对立,大大提高了程序的可维护性。

 

2.3 有利于团队开发

 

在开发过程中,可以更好的分工,更好的协作。有利于开发出高质量的软件。良好的项目架构设计,将减少编码工作量 :采用MVC结构 + 代码生成器,是大多数Web应用的理想选择。部分模型(Model)、和存储过程一般可用工具自动生成。控制(Controller)器比较稳定,一般由于架构师(也可能是有经验的人)完成;那么整个项目需要手动编写代码的地方就只有视图(View)了。在这种模式下,个人能力不在特别重要,只要懂点语法基础的人都可以编写,无论项目成员写出什么样的代码,都在项目管理者的可控范围内。即使项目中途换人,也不会有太大问题。在个人能力参差不齐的团队开发中,采用MVC开发是非常理想的。




实现Servlet的转发。[MVC设计模式]

5)ServletContxt对象能够实现转发功能,即307+location      

ServletContext context = this.getServletContext();

//定位需要转发的路径

RequestDispatcher rd = context.getRequestDispatcher("/success.html");

//真正转向页面

rd.forward(request,response);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值