11.JavaEE技术-MVC设计模式.ppt_第1页
11.JavaEE技术-MVC设计模式.ppt_第2页
11.JavaEE技术-MVC设计模式.ppt_第3页
11.JavaEE技术-MVC设计模式.ppt_第4页
11.JavaEE技术-MVC设计模式.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java EE技术,MVC设计模式,本章目标,两种架构模式 Model 1和Model 2 MVC框架简介 Struts2的MVC模式 Spring的MVC模式,两种架构模式,使用JSP开发有二种模式 一种是:Model1-JSP+JavaBean 一种是:Model2-JSP+JavaBean+Servlet 以上二种模式是当今大中型应用程序的基础,这二种模式中最重要的就是JavaBean的开发,JavaBean用来封装业务逻辑。 第二种模式就是我们今天要讲解的MVC模式。,Model 1,单独使用JSP或JSP+JavaBean称为Model1。 Model1中JSP页面响应请求并返回结果

2、,同时充当视图和控制器,未能实现视图和业务逻辑完全分离,尽管十分简单但不适合大型应用开发,给网页设计和维护带来很多麻烦。 1.客户端请求由JSP页面接受。 2.JavaBean处理业务逻辑,由JSP决定与不同JavaBean交互。 3.JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。 4.由JSP将改变的结果响应到客户端。,客户端,JSP,JavaBean,数据库,1,2,3,4,Model 2,JSP和Servlet可以一起使用来部署Web 应用。 Servlet负责控制流管理,而 JSP 则专注于显示逻辑(编写HTML)。结合使用JSP和Servlet的开发模式被称为Mode

3、l2,该模式又叫做MVC模式。 1.Servlet接受客户端请求。 2.Servlet处理请求并调用不同的JavaBean。 3.JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。 4.由Servlet将处理后的JavaBean模型传递给JSP页面。 5.由JSP将后端处理结果展示到客户端。,客户端,JSP,JavaBean,数据库,1,2,3,4,Servlet,5,Model2工作机制:,由Servlet通过request.SetAttribute方式与JSP通信,负责请求管理以及调用相关的业务逻辑。 而JSP则通过request.getAttribute方式获得所需要的Mod

4、el信息,并最终显示在JSP页面上。 这是最基本的MVC Model2,也是一种责任的划分,实现了各组件间的松散耦合,以后的Struts、Spring 的MVC都是基于这样的理念。,MVC框架简介,不同的体系结构的web应用程序可能需要不同的开发模式。MVC是一种软件设计模式,最初是为SMALLTALK-80语言提出的,后来在JSP开发中渐渐得到广泛的应用,并且成为Sun公司推荐的J2EE平台的设计模式。Sun公司提出的Model2开发模型就是基于MVC设计模式的应用。 MVC框架支持大多数现代图形用户界面。在Web应用程序开发中,MVC框架应用非常广泛,特别适合应用在大型的、比较复杂的项目开

5、发中。 MVC(Model-View-Controller),即模型-视图-控制器是当前最为流行的Web开发模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。,MVC框架是什么,MVC框架即是模型视图-控制器(Model-View-Controller)设计模式。其中M代表Model,V代表View,C代表Controller。 MVC的核心思想是将一个应用程序的数据业务处理功能(模型层),表示功能(视图层)和控制功能(控制层)在3个不同的部分(也叫层)上分别实现。 MVC的目的是增强代码的复用性,降低数据描述和应用操作的可耦合度,并提高代码的可读性。同时也可以使

6、软件的可维护性,可修复性,灵活性和封装性大大提高。,MVC框架主要由以下3个部分组成,视图:视图是应用程序的表现层,代表用户交互界面。在Web应用中,交互界面可能是HTML界面,也可能是XML界面,Applet界面或者其它界面。一个应用甚至可以对应多个视图。MVC视图的操作包括对视图上数据的采集和处理,以及对用户的请求处理,但不负责对视图上的业务流程的处理。 模型:模型是应用程序的业务逻辑处理层,负责所有业务流程的处理和业务规则的制定。模型处理由控制器转发来的视图和请求数据,并将最终的处理结果返回给视图。 控制器:控制器的作用实际上就是一个分发器。负责将决定请求数据转发给什么样的模型组件。以及

7、决定选择什么样的视图来显示模型返回的数据。同视图一样,控制器本身也不处理任何业务信息。,三个部分的关系如图,控制层,视图层,模型层,3.选择View,2.业务处理,1.用户请求,4.查询模型状态,通知更改,MVC模型、视图、控制器关系图,MVC框架3个部分间的功能协作过程,终端用户通过该应用程序发出了一个请求,该请求被转发给Controller (控制器)。 控制器接收到请求后,会检查该请求,然后决定使用什么业务逻辑来处理该请求,这时控制器会将该请求转发给一个相应的业务组件去处理。 模型中包含处理该用户请求的所有业务组件,并且也执行用户所需要的全部数据存取。代表终端用户查询检索出的任何数据都被

8、打包返回给控制器。 控制器接收从模型返回的数据,并选择显示这些数据的相应的视图,并将视图返回给用户。,使用MVC框架的原因,在早期使用JSP技术开发WEB项目时,程序员通过在HTML中嵌入Java代码和一些标签,来实现动态网页。显然这种开发的表现层和业务处理层是混杂在一起的,其优点是简单直观,易于搭建原型,但比较适宜开发只有几个页面的小型项目。如果用这种方式来开发比较复杂的大型项目,其缺陷将变得非常突出并且难以忍受-随着嵌入JSP页面中Java代码的增多,跟踪维护这些代码将就得非常困难。同时,保持混杂有大量Java代码段的HTML的一致性也很困难。上述的这些困难,会使程序极难维护,导致程序的应

9、用扩展性,可重用性以及代码的可读性都很差。同时这样的开发方式,需要开发人员既熟悉网页制作,也精通Java语言,无法实现开发人员的明确分工,导致开发效率低下。 在大型WEB项目的开发中,将程序代码分割成带有清晰功能的组件是一种更好的方式。MVC框架将网页内容的产生,网页内容的显示,业务对象的处理划分为3个相对独立的层,因而可以很方便地实现表现层和业务处理层的分离。同时这也使得网页制作人员和软件开发人员之间可以有明确的分工。,MVC框架的优点,有利于程序的维护和功能的扩展。在MVC框架中,3个层次功能和结构上是相互独立的,每个层负责实现各自的功能。如果某个层的需求发生变化,则只需要更改相应的层中的

10、代码即可,而不会影响到其它层中的代码。 有利于开发的分工。在MVC框架中,由于把应用程序划分了3个层,可以很好的实现开发中的分工。网页制作人员可以开发视图层,熟悉业务的人员可以开发业务层,其它人员可以开发控制层。 有利于组件的重用。MVC框架的分层开发模式,有利于组件的重用。如控制层可以成为一个独立的组件,表示层可以做成一个通用的界面,而业务处理层也可以成为一个独立的功能模块,从而可以把这些组件应用到其它的项目开发中。,Struts2的MVC模式,Struts2是由struts和webwork发展而来。 它的核心架构就是基于MVC设计模式的。 实际Web应用中,Struts2主要用于解决表示层

11、的实现。,Struts1的工作流程,表示层,业务层,数据层,视图,Struts2工作流程,1.客户端向Struts2容器发出请求。 2.FilterDispatcher接受请求,过滤URL并调用指定的Action类。 3.Action类处理请求,返回逻辑视图result。 4.在struts.xml中找到result对应的物理视图。 5.将物理视图展示到客户端。,客户端,Struts2容器,控制器 FilterDispatcher,模型 Action类,Result,Struts.xml,Html,JSP ,1,2,3,4,5,Spring的MVC模式,Spring的核心技术:IoC和AOP。 它的MVC采用了松耦合的可插拔地组件结构,更加灵活。 Spring MVC自身也是基于MVC设计模式的。,客户端,Spring容器,DispatcherServlet,Controller,ViewResolver,Xx_servlet.xml,1,2,3,4,5,Handler mapping,ModelAndView,View,6,7,Spring MVC的工作流程,1.客户端发http请求。 2.Spring容器的DispatcherServlet接受请求,为请求寻找控制器。 3.找到控制器后,将请求分配给该控制器,控制器调用业务层相关对象处理请求。 4.控制器处理完毕后,将包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论