Web编程技术 教学课件 ppt 作者 厉小军 第8章 MVC设计模式

上传人:E**** 文档编号:89181609 上传时间:2019-05-20 格式:PPT 页数:23 大小:264KB
返回 下载 相关 举报
Web编程技术 教学课件 ppt 作者 厉小军 第8章  MVC设计模式_第1页
第1页 / 共23页
Web编程技术 教学课件 ppt 作者 厉小军 第8章  MVC设计模式_第2页
第2页 / 共23页
Web编程技术 教学课件 ppt 作者 厉小军 第8章  MVC设计模式_第3页
第3页 / 共23页
Web编程技术 教学课件 ppt 作者 厉小军 第8章  MVC设计模式_第4页
第4页 / 共23页
Web编程技术 教学课件 ppt 作者 厉小军 第8章  MVC设计模式_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Web编程技术 教学课件 ppt 作者 厉小军 第8章 MVC设计模式》由会员分享,可在线阅读,更多相关《Web编程技术 教学课件 ppt 作者 厉小军 第8章 MVC设计模式(23页珍藏版)》请在金锄头文库上搜索。

1、1,第8章 MVC设计模式,2,第8章、MVC设计模式,8.1 MVC设计模式 8.1.1 什么是设计模式 8.1.2 MVC设计模式 8.2 JSP Model1和JSP Model2 8.2.1 JSP Model1 8.2.2 JSP Model2 8.3 Struts介绍 8.3.1 什么是Struts 8.3.2 Struts主要的模型组件 8.3.3 Struts的视图组件 8.3.4 Struts的控制器组件 8.3.5 标记库简介 8.4 MVC案例 8.4.1 以JSP+SERVLET+JAVA BEAN来实现的MVC案例 8.4.2 以Struts来实现的MVC案例,3,8

2、.1 MVC设计模式,8.1.1 什么是设计模式 设计模式(Design pattern)是对于某些常见问题抽象提炼出来的解决方案。 软件设计模式使人们可以更加简单方便的复用以往成功的软件设计经验和体系结构,将已经被证实为有效的软件技术用设计模式进行表述也将会使新来的开发者更加容易理解其原来的设计思路,减少沟通成本和误解。,4,8.1 MVC设计模式,8.1.2 MVC设计模式 (1)MVC设计思想 MVC是把一个应用的输入、处理、输出流程按照模型、视图、控制的方式进行分离,这样应用被分为三个层:模型层、视图层、控制层。 模型层(Model):负责表达和访问商业数据,执行业务逻辑和操作。 视图

3、层(View):把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。 控制层(Control):定义了抽象的业务逻辑,用于控制业务流程。,5,8.1 MVC设计模式,(2) MVC的实现,图 8.1 GUI程序中的MVC,6,8.1 MVC设计模式,(2) MVC的实现,图 8.2 web应用中的MVC,7,8.2 JSP Model1和JSP Model2,8.2.1 JSP Model1 对于小型的web应用程序,我们可以直接使用JSP来编写动态网页,网页中的动态内容通过插入一些JSP中脚本代码来实现,这种方式写程序最为简单、快捷。 这样做也使得我们的JSP页面中大量混合了HTML和

4、JAVA代码,应用程序变得难以读懂和维护。 在页面中加入Java Bean在一定程度上可以解决这种问题,我们可以使用Java Bean将复杂的商务逻辑封装进来,这种方法我们称之为JSP Model1。,8,图 8.3 JSP Model1结构图,8.2 JSP Model1和JSP Model2,8.2.1 JSP Model1,9,8.2 JSP Model1和JSP Model2,8.2.2 JSP Model2 在JSP Model1设计模式中,JSP页面还是必须调用一定的业务逻辑,而且JSP页面还承担起控制页面流向的重要角色,所以在JSP Model1中将不可能消除页面中存在的程序代码

5、。 为了解决JSP Model1存在的上述问题,我们引入了MVC体系,也就是我们所说的JSP Model2。,10,图 8.4 JSP Model2结构图,8.2 JSP Model1和JSP Model2,8.2.2 JSP Model2,11,8.3 Struts介绍,8.3.1 什么是Struts Struts是一个基于MVC设计模式的web应用程序的开发框架,是由著名的开源软件组织Apache提供的,而且Struts本身是开放源代码的。它实现了MVC架构,目前在电子商务系统的开发中得到广泛的应用。 作为一种比较成熟的Web应用开发框架,Struts主要提供了三种重要的组件: 请求处理器

6、(Request Handler) 响应处理器(Response Handler) 标记库(Tag Library),12,8.3 Struts介绍,Struts框架的实现,图8.5 Struts框架的基本构成,13,8.3 Struts介绍,Struts框架的基本构成 控制器(Controller):在Struts中控制器的功能由ActionServlet和ActionMapping对象构成。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的模型对象之间的映射。 模型(Model):Struts为模型部分提

7、供了Action和ActionForm两类对象。 视图(View):Struts应用中的视图部分是通过JSP技术实现的。Struts提供了自定义的标记库以供使用,通过这些自定义标记可以非常好地和系统的模型部分交互。,14,8.3 Struts介绍,图8.6 Struts框架的组件结构图,15,8.3 Struts介绍,8.3.2 Struts主要的模型组件 ActionForm Bean 系统状态Bean 业务逻辑Bean,16,ActionForm Bean, 请输入你的用户名和密码. 用户名: 密码: ,import org.apache.struts.action.ActionForm;

8、 public class AccountBean extends ActionForm private String username; / 定义userName属性 private String password; / 定义password属性 /* 获取username属性的值 */ public String getUsername() return username; /* 设置username属性的值 */ public void setUsername(String username) this.username = username; /* 获取password属性的值 */

9、public String getPassword() return password; /* 设置password属性的值 */ public void setPassword(String password) this.password = password; ,17,系统状态Bean,在Web应用系统运行过程中,系统的状态是由一系列JavaBeans来表示的,这些JavaBeans被称做系统状态Bean。 它们的属性值定义了当前的运行状态。,/* 订单类 */ public class Order implements Serializable private int orderId;

10、/ 定义订单编号 private String username; / 定义用户名 private String shipAddress1; / 定义送货地址1 . / 其他订单属性 /* 获取订单编号 */ public int getOrderId() return orderId; /* 设置订单编号 */ public void setOrderId(int orderId) this.orderId = orderId; /* 其他订单方法 */ . ,18,业务逻辑Bean,在一个应用系统中,业务逻辑的实现是整个系统实现的重点。 一个好的方法是为不同的业务逻辑设计不同的JavaBe

11、ans,这些JavaBeans的方法实现了所有的业务逻辑。 开发人员可以在系统状态Bean中实现这些方法,也可以设计单独的业务逻辑Bean来实现这些方法。,/* 购物车类 */ public class Cart implements Serializable /* 购物车的属性 */ . public boolean containsItemId(String itemId) / 判断购物车中是否已有某件商品 public void addItem(Item item, boolean isInStock) / 向购物车中添加商品 public Item removeItemById(Str

12、ing itemId) / 从购物车中删除某件商品 /* 其他订单方法 */ . ,19,8.3 Struts介绍,8.3.3 Struts的视图组件 Struts框架提供了对视图组件的支持,但是它自身并没有提供实际的视图组件。 在Struts框架下开发系统的视图部分时,可以使用各种流行的表示层技术,如:JSP、XSLT、Cocoon等。,20,8.3 Struts介绍,8.3.4 Struts的控制器组件 在Struts框架中,一个Servlet被用于将客户端的请求URI映射到一个完成具体操作的Action类。 对于开发人员来说,与控制器有关的主要开发任务包括: 编写ActionForm类;

13、 为每一个客户端请求编写Action类; 在配置文件struts-config.xml中为每一个请求配置ActionMapping。,21,8.3 Struts介绍,8.3.5 标记库简介 Struts的标记库(Taglib)提供了一系列JSP自定义标记,用于帮助开发人员创建基于表单的、交互式的Web应用。 在电子商务系统的开发中,Struts标记库的重要性体现在: 能够提供比普通的HTML表单标记更加强大的表单功能。 能够消除在JSP页面中出现的Java代码,降低页面开发难度。 与Struts框架紧密结合,能够充分利用Struts框架的优势和特点。,22,8.3 Struts介绍,Struts标记库中包含了4类基本的标记:Bean、HTML、Logic和Nested。,23,8.4 MVC案例,8.4.1 以JSP+SERVLET+JAVA BEAN来实现的MVC案例 8.4.2 以Struts来实现的MVC案例,

展开阅读全文
相关资源
相关搜索

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

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