Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式

上传人:E**** 文档编号:89155633 上传时间:2019-05-19 格式:PPT 页数:36 大小:1.38MB
返回 下载 相关 举报
Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式_第1页
第1页 / 共36页
Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式_第2页
第2页 / 共36页
Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式_第3页
第3页 / 共36页
Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式_第4页
第4页 / 共36页
Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式》由会员分享,可在线阅读,更多相关《Java Web应用开发技术 教学课件 ppt 作者 任文娟 第5章 MVC架构模式(36页珍藏版)》请在金锄头文库上搜索。

1、第5章 MVC架构模式,2,本章导航,本章将介绍什么是MVC模式,通过本章的学习,将帮您解决如下几个主要问题: 什么是模式? 什么是MVC模式? MVC模式有哪几个重要组成部分?每部分的功能是什么? MVC模式在 Java Web 开发中如何应用?,3,学习目标,通过本章的学习,将会为后续章节Java Web应用开发技术的学习打下基础。学完本章应重点达到如下学习目标: 了解什么是MVC模式; 了解 Model1 和 Model2 的技术特点; 掌握MVC模式在Java Web开发中的应用。,4,主要内容,设计模式,1,JSP的两种开发模型,2,程序实例,3,5,5.1 设计模式,模式,即pat

2、tern,其实就是解决某一类问题的方法论。通过使用模式,可以无数次地使用那些已有的解决方案,无需重复相同的工作。 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。,5.1.1 模式简介,6,5.1 设计模式,架构模式是最高等级的模式,表示软件系统的基本结构化组织图式和组织方案。每个架构模式处理一个软件系统的设计或实现中一种特殊的重复出现的问题,适用于粗粒度设计的开始阶段,架构模式提供了一套预定义的子系统,规定子系统的职责和子系统之间的规则。 架构模式常用的有以下几种

3、:层(layers)、管道(pipes and filters)和过滤器(blackboard)、代理者(broker)、模型-视图-控制器(Model-View-Controller,简称MVC)、表示-抽象-控制( Presentation-Abstraction-Control ,简称PAC)、微核(microkernel)、映像( reflection)。,7,5.1 设计模式,MVC是Model-View-Controller的缩写, 即模型-视图-控制器,是一种目前广泛流行的软件架构模式。 MVC把一个应用的输入、处理、输出流程按照模型、视图、控制器的方式进行分离,从而将一个应用程

4、序分成三个核心模块:模型、视图和控制器,它们各自完成不同的任务。简单地说,模型是应用对象,视图是它在屏幕上的表示,控制器定义用户界面对用户输入的响应方式。,5.1.2 MVC模式,8,5.1 设计模式,图5-1 MVC模式,9,5.1 设计模式,1.视图(View) 视图代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,一个应用可能有很多不同的视图,同一个Web应用程序会提供多种用户界面。例如用户希望既能通过浏览器来收发电子邮件,还能通过手机来访问电子邮箱,这就要求Web网站同时提供Internet界面和WAP界

5、面。视图能接受用户的输入数据,但是它并不进行任何数据处理,而是将接受的数据交予模型(Model)处理。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新,向用户显示相关的数据。,10,5.1 设计模式,2.模型(Model) 模型是应用程序的主体部分,就是业务流程的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。一个模型能为多个视图提供数据,即同一个模型可以被多个视图重用,所以提高了应用的可重用性。,11,5.1 设计模式,3.控制器(Controller) 控制器接受用户的输入并调用模型和视图,将模型与视图匹配在一起,共同完成用户的请求。控制器并不做任何的数

6、据处理,而是控制着模型和视图之间的交互过程。例如,用户点击一个连接,控制器接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。,12,5.1 设计模式,4.MVC处理过程 控制器接收用户的请求,并决定调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。,13,5.1 设计模式,5.MVC的优点 在最初的JSP网页中,像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。要将

7、数据从表示层分离开来,通常不太容易做到。MVC从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。使用MVC架构编写的程序,只需在以前的程序上稍作修改或增加新的类,即可轻松增加许多程序功能。以前开发的许多类可以重用,而程序结构不再需要改变,各类之间相互独立,便于团体开发,提高开发效率。,14,5.1 设计模式,6.MVC的适用范围 使用MVC需要精心的设计,由于它的内部原理比较复杂,所以需要花费一些时间去理解它。将MVC运用到应用程序中,会带来额外的工作量,增加应用的复杂性,所以MVC不适合小型应用程序。对于一些非常小的项目,或者没有后期开

8、发的项目,MVC的分模块设计会给开发带来额外的工作量,可以考虑不使用MVC设计。 但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。,15,5.2 JSP的两种开发模型,5.2.1 模型一 JSP+JavaBean 在模型一中,JSP页面负责响应用户请求并将处理结果返回用户,所有的数据通过bean来处理。虽然该模型也实现了页面的显示和逻辑处理相分离,但是JSP既要负责业务流程控制,又要负责提供表示层数据,同时充当控制器和视图,未能实

9、现这两个模块之间的独立和分离。所以当需要处理的商业逻辑很复杂时,常常会导致页面被嵌入大量的脚本语言或者Java代码。因此模型一十分适合小型应用的需要,却不适合开发复杂的大型应用程序。,16,5.2 JSP的两种开发模型,图5-2 JSP模型一体系结构,17,5.2 JSP的两种开发模型,5.2.2 模型二 JSP+JavaBean+Servlet 模型二体系结构是一种联合使用JSP与Servlet来提供动态内容服务的方法。它的主要思想是使用一个或多个Servlet作为控制器,用JSP生成表示层的内容,让Servlet完成深层次的处理任务,JavaBean作为模型的角色,充当JSP和Servle

10、t通信的工具。在该模型中, Servlet处理完后设置Bean的属性,JSP读取此Bean的属性,然后进行显示。在JSP页内没有处理逻辑,它只负责检索原先由Servlet创建的JavaBean对象,从Servlet中提取动态内容插入到静态模板。,18,5.2 JSP的两种开发模型,图5-3 JSP模型二体系结构,19,5.2 JSP的两种开发模型,在模型二中,每个Servlet通常只实现很少一部分功能,多个Servlets控制器就可以结合起来完成复杂的任务,这样的好处是Servlets的可重用性好,一个副作用是导致响应时间过长。这种模型清晰地分离了显示和处理,明确了角色定义以及开发者与网页设计

11、者的分工。项目越复杂,使用模型二的好处就越大。,20,5.2 JSP的两种开发模型,5.2.3 两种模式的技术特点 从以上对两种模型的说明来看,模型一和模型二的整体结构都比较清晰,易于实现。它们的基本思想都是实现显示和处理的分开,用JSP页面作为视图,用JavaBean处理业务逻辑。这样的设计便于系统的维护和修改。 两种模型的主要区别在于: (1)处理用户请求的位置不同。这也是两中模型的最大区别。在模型一中,JSP页面负责处理用户请求,而在模型二中,用户的所有请求提交给控制器Servlet来处理。,21,5.3 程序实例,【例5-1】本实例将完成常见的网上书店系统中的图书检索、浏览模块。当进行

12、图书检索时,可以在书名、作者、出版社、ISBN号这四个检索项中的任意一项中输入检索条件,单击检索按钮,显示检索到的图书。如果一个条件也不输入,将检索当前所有的图书。,图5-4 图书检索界面,22,5.3 程序实例,本案例需要在数据库建立表Book,该表结构如下所示:,23,5.3 程序实例,该表可以通过以下的脚本创建: 注意:本实例需要使用的数据库JDBC相关知识可以参考本书第4章 Java Web编程中数据库技术的使用的相关内容来配置和连接数据库。本实例使用SQL Server数据库,在运行程序前,需要在本机安装SQL Server或者连接已运行的SQL Server实例,当前实例连接数据库

13、名为bookshop,用户名:sa 密码:123456。,24,5.3 程序实例,【案例分析】 视图部分 图书检索页面index.jsp;图书检索结果显示界面 findBook.jsp。 控制器部分 模型一,检索业务逻辑实现在MessageBean.java中。 模型二,检索业务逻辑实现在FindBookServlet.java中,控制器通过配置web.xml完成。 模型部分 一个用于在检索界面和业务逻辑层之间传递数据的BookBean.java。 其它 模型二中需要描述 Servlet 的配置文件web.xml 文件。,25,5.3 程序实例,【案例实现】 模型一(JSP + JavaBea

14、n) (1)图书数据的JavaBean 本模式中,JavaBean用来封装数据,首先开发一个表示图书数据的JavaBean。代码如下:,26,Tomcat目录结构,27,5.3 程序实例,(2)用于执行数据库操作的JavaBean 本模式中,该JavaBean用于连接数据库,执行数据库查询操作,并把结果返回到JSP页面进行显示。 在该JavaBean中,有两个主要操作,setMsg()方法用于将图书查询信息传入。findBook方法用于连接数据库,进行图书的检索操作,并将查询结果返回给显示页面。而translate()方法则用于字符集转换,以防输入的汉字关键字查询不到。 (3)图书检索界面 I

15、ndex.jsp 在图书检索界面中包含一个表单,这个表单的目的是接受用户输入,并将输入信息传给findBook.jsp。其中form action 指向findBook.jsp。,28,5.3 程序实例,(4)图书检索结果 findBook.jsp页面主要是显示图书检索的结果。页面中 通过 来获得表单中的数据,JavaBean的机制可以将提交的数据自动转换成BookBean对应的数据类型。 通过Msg.setMsg(book) 将需要检索图书的条件传入。,29,5.3 程序实例,(5)运行 在浏览器中输入 http:/localhost:8080/test/index.jsp ,填写要检索图书

16、的信息,然后提交,提交完成后页面转发到findBook.jsp中,显示执行结果。例如在书名一栏中输入检索条件“操作系统”并提交,将得到如下显示界面。,30,5.3 程序实例,【案例实现】 模型二(JSP+JavaBean+Servlet) (1)进行图书检索的Servlet 该模式中,使用Servlet接收Http请求,然后执行连接数据库的操作,进行图书的检索操作,然后把结果派发到用于显示的jsp。用于图书检索的Servlet (FindBookServlet.java) (2)图书检索界面 图书检索界面(Index.jsp)的代码与模型一中略有不同。 (3)图书检索结果 图书检索结果(findBook.jsp),31,5.3 程序实例,(4)Servlet的配置 需要在 web.xml 文件中配置前面创建的Servlet,配置信息如右:,32,5.3 程序实例,(5)运行 在浏览器地址栏中输入http:/127.0.0.1:8080/test/index.jsp,打开图书检索界面,填写检索信息后,单击“检索”按钮,会转到 http:/127.0.0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号