第8章MVC设计模式_第1页
第8章MVC设计模式_第2页
第8章MVC设计模式_第3页
第8章MVC设计模式_第4页
第8章MVC设计模式_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、web技术 第8章 mvc设计模式1第第8 8章章 mvcmvc设计模式设计模式web技术 第8章 mvc设计模式2第8章、mvc设计模式8.1 mvc设计模式设计模式8.1.1 什么是设计模式什么是设计模式8.1.2 mvc设计模式设计模式8.2 jsp model1和和jsp model28.2.1 jsp model18.2.2 jsp model28.3 struts介绍介绍8.3.1 什么是什么是struts8.3.2 struts主要的模型组件主要的模型组件8.3.3 struts的视图组件的视图组件8.3.4 struts的控制器组件的控制器组件8.3.5 标记库简介标记库简介8

2、.4 mvc案例案例8.4.1 以以jsp+servlet+java bean来实现的来实现的mvc案例案例8.4.2 以以struts来实现的来实现的mvc案例案例web技术 第8章 mvc设计模式38.1 mvc设计模式设计模式8.1.1 什么是设计模式什么是设计模式 设计模式(设计模式(design pattern)是对于某些常)是对于某些常见问题抽象提炼出来的解决方案。见问题抽象提炼出来的解决方案。 软件设计模式软件设计模式使人们可以更加简单方便的复使人们可以更加简单方便的复用以往成功的软件设计经验和体系结构,将用以往成功的软件设计经验和体系结构,将已经被证实为有效的软件技术用设计模式

3、进已经被证实为有效的软件技术用设计模式进行表述也将会使新来的开发者更加容易理解行表述也将会使新来的开发者更加容易理解其原来的设计思路,减少沟通成本和误解。其原来的设计思路,减少沟通成本和误解。web技术 第8章 mvc设计模式48.1 mvc设计模式设计模式8.1.2 mvc设计模式设计模式(1)mvc设计思想设计思想mvc是把一个应用的输入、处理、输出流程是把一个应用的输入、处理、输出流程按照模型、视图、控制的方式进行分离,这样按照模型、视图、控制的方式进行分离,这样应用被分为三个层:模型层、视图层、控制层。应用被分为三个层:模型层、视图层、控制层。模型层(模型层(model):负责表达和访

4、问商业数据,执):负责表达和访问商业数据,执行业务逻辑和操作。行业务逻辑和操作。视图层(视图层(view):把表示模型数据及逻辑关系和状):把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。态的信息及特定形式展示给用户。控制层(控制层(control):定义了抽象的业务逻辑,用于):定义了抽象的业务逻辑,用于控制业务流程。控制业务流程。web技术 第8章 mvc设计模式58.1 mvc设计模式设计模式(2) mvc的实现的实现 客户端视图控制器模型交互刷新视图视图事件改变模型声明改变事件图 8.1 gui程序中的mvc web技术 第8章 mvc设计模式68.1 mvc设计模式设计模式

5、(2) mvc的实现的实现 图 8.2 web应用中的mvc 客户端视图控制器模型请求刷新视图呈现分发器执行web技术 第8章 mvc设计模式78.2 jsp model1和和jsp model28.2.1 jsp model1对于小型的对于小型的web应用程序,我们可以直接使用应用程序,我们可以直接使用jsp来编写动态网页,网页中的动态内容通过插入一些来编写动态网页,网页中的动态内容通过插入一些jsp中脚本代码来实现,这种方式写程序最为简单、中脚本代码来实现,这种方式写程序最为简单、快捷。快捷。这样做也使得我们的这样做也使得我们的jsp页面中大量混合了页面中大量混合了html和和java代码

6、,应用程序变得难以读懂和维护。代码,应用程序变得难以读懂和维护。在页面中加入在页面中加入java bean在一定程度上可以解决这在一定程度上可以解决这种问题,我们可以使用种问题,我们可以使用java bean将复杂的商务逻将复杂的商务逻辑封装进来,这种方法我们称之为辑封装进来,这种方法我们称之为jsp model1。web技术 第8章 mvc设计模式8图图 8.3 jsp model1结构图结构图8.2 jsp model1和和jsp model2浏览器jsp网页java bean业务对象requestresponse8.2.1 jsp model1web技术 第8章 mvc设计模式98.2

7、jsp model1和和jsp model28.2.2 jsp model2在在jsp model1设计模式中,设计模式中,jsp页面还是必页面还是必须调用一定的业务逻辑,而且须调用一定的业务逻辑,而且jsp页面还承页面还承担起控制页面流向的重要角色,所以在担起控制页面流向的重要角色,所以在jsp model1中将不可能消除页面中存在的程序中将不可能消除页面中存在的程序代码。代码。为了解决为了解决jsp model1存在的上述问题,我们存在的上述问题,我们引入了引入了mvc体系,也就是我们所说的体系,也就是我们所说的jsp model2。 web技术 第8章 mvc设计模式10图 8.4 js

8、p model2结构图8.2 jsp model1和和jsp model28.2.2 jsp model2浏览器(view)jsp网页(model)java bean业务对象requestresponse(controller)servletweb技术 第8章 mvc设计模式118.3 struts介绍介绍8.3.1 什么是什么是strutsstruts是一个基于是一个基于mvc设计模式的设计模式的web应用应用程序的开发框架,是由著名的开源软件组织程序的开发框架,是由著名的开源软件组织apache提供的,而且提供的,而且struts本身是开放源代本身是开放源代码的。它实现了码的。它实现了mv

9、c架构,目前在电子商架构,目前在电子商务系统的开发中得到广泛的应用。务系统的开发中得到广泛的应用。作为一种比较成熟的作为一种比较成熟的web应用开发框架,应用开发框架,struts主要提供了三种重要的组件:主要提供了三种重要的组件: 请求处理器(请求处理器(request handler) 响应处理器(响应处理器(response handler) 标记库(标记库(tag library)web技术 第8章 mvc设计模式128.3 struts介绍介绍 struts框架的实现框架的实现图8.5 struts框架的基本构成 web技术 第8章 mvc设计模式138.3 struts介绍介绍 s

10、truts框架的基本构成框架的基本构成控制器(控制器(controller):在):在struts中控制器的功能由中控制器的功能由actionservlet和和actionmapping对象构成。对象构成。actionservlet包括一组基于配置的包括一组基于配置的actionmapping对象,每个对象,每个actionmapping对象实现了一个请求到对象实现了一个请求到一个具体的模型对象之间的映射。一个具体的模型对象之间的映射。 模型(模型(model):):struts为模型部分提供了为模型部分提供了action和和actionform两类对象。两类对象。 视图(视图(view):)

11、:struts应用中的视图部分是通过应用中的视图部分是通过jsp技术实现的。技术实现的。struts提供了自定义的标记库以供提供了自定义的标记库以供使用,通过这些自定义标记可以非常好地和系统的使用,通过这些自定义标记可以非常好地和系统的模型部分交互。模型部分交互。 web技术 第8章 mvc设计模式148.3 struts介绍介绍图8.6 struts框架的组件结构图 web技术 第8章 mvc设计模式158.3 struts介绍介绍8.3.2 struts主要的模型组件主要的模型组件actionform bean系统状态系统状态bean业务逻辑业务逻辑beanweb技术 第8章 mvc设计模

12、式16actionform bean 请输入你的用户名和密码. 用户名: 密码: import org.apache.struts.action.actionform;public class accountbean extends actionform private string username; / 定义username属性 private string password; / 定义password属性 /* 获取username属性的值 */ public string getusername() return username; /* 设置username属性的值 */ publi

13、c void setusername(string username) this.username = username; /* 获取password属性的值 */ public string getpassword() return password; /* 设置password属性的值 */ public void setpassword(string password) this.password = password; web技术 第8章 mvc设计模式17系统状态系统状态bean 在在web应用系统应用系统运行过程中,系运行过程中,系统的状态是由一统的状态是由一系列系列javabea

14、ns来表示的,这些来表示的,这些javabeans被称被称做系统状态做系统状态bean。 它们的属性值定它们的属性值定义了当前的运行义了当前的运行状态。状态。/* 订单类 */public class order implements serializable private int orderid; / 定义订单编号 private string username; / 定义用户名 private string shipaddress1; / 定义送货地址1 . / 其他订单属性 /* 获取订单编号 */ public int getorderid() return orderid; /*

15、设置订单编号 */ public void setorderid(int orderid) this.orderid = orderid; /* 其他订单方法 */ . web技术 第8章 mvc设计模式18业务逻辑业务逻辑bean 在一个应用系统中,在一个应用系统中,业务逻辑的实现是业务逻辑的实现是整个系统实现的重整个系统实现的重点。点。 一个好的方法是为一个好的方法是为不同的业务逻辑设不同的业务逻辑设计不同的计不同的javabeans,这些,这些javabeans的方法的方法实现了所有的业务实现了所有的业务逻辑。逻辑。 开发人员可以在系开发人员可以在系统状态统状态bean中实现中实现这些方

16、法,也可以这些方法,也可以设计单独的业务逻设计单独的业务逻辑辑bean来实现这些来实现这些方法。方法。 /* 购物车类 */public class cart implements serializable /* 购物车的属性 */ . public boolean containsitemid(string itemid) / 判断购物车中是否已有某件商品 public void additem(item item, boolean isinstock) / 向购物车中添加商品 public item removeitembyid(string itemid) / 从购物车中删除某件商品 /

17、* 其他订单方法 */ . web技术 第8章 mvc设计模式198.3 struts介绍介绍8.3.3 struts的视图组件的视图组件struts框架提供了对视图组件的支持,但是框架提供了对视图组件的支持,但是它自身并没有提供实际的视图组件。它自身并没有提供实际的视图组件。在在struts框架下开发系统的视图部分时,可框架下开发系统的视图部分时,可以使用各种流行的表示层技术,如:以使用各种流行的表示层技术,如:jsp、xslt、cocoon等。等。 web技术 第8章 mvc设计模式208.3 struts介绍介绍8.3.4 struts的控制器组件的控制器组件在在struts框架中,一个

18、框架中,一个servlet被用于将客户被用于将客户端的请求端的请求uri映射到一个完成具体操作的映射到一个完成具体操作的action类。类。对于开发人员来说,与控制器有关的主要开对于开发人员来说,与控制器有关的主要开发任务包括:发任务包括: 编写编写actionform类类; 为每一个客户端请求编写为每一个客户端请求编写action类类; 在配置文件在配置文件struts-config.xml中为每一个请求配中为每一个请求配置置actionmapping。 web技术 第8章 mvc设计模式218.3 struts介绍介绍8.3.5 标记库简介标记库简介struts的标记库(的标记库(taglib)提供了一系列)提供了一系列jsp自定义自定义标记,用于帮助开发人员创建基于表单的、交互式标记,用于帮助开发人员创建基于表单的、交

温馨提示

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

评论

0/150

提交评论