基于MVC设计模式对网上购书系统的设计与实现(含源文件)(2)

2018-11-30 19:20

积极投身于电子商务活动.实际上,电子商务是一些商业行为的电子化,例如网上书店,网上贸易,就网上书店来说,网上书店是目前应用最广,最成功的典范之一,网上书店的崛起对传统的图书流通体系产生了强烈的冲击,有效地缩短了图书流通发行环节,将广大读者,图书,出版者,发行者紧密地结合在一起,大大提高了图书流通率。

1.2.2网上书店系统发展现状

西方国家网上书店概况:世界上第一家网上书店是1991年在美国联机公司AOL采购网络上建立的\阅读美国书店\,目前最负胜名的是美国西雅图亚马逊图书公司的亚马逊网上书店。它创建于1995年,供书品达310余万种年顾客达500万人次,其价格优惠20-50%。金融结算制度完善,配送服务高效。实现了零库存运转。英国网上书店较著名的有Internet书店,德国的网上书店主要有图书在线网上书店。

国内网上书店的概况:自从亚马逊网上书店成功后,中国的网上书店也建立起来。中国最早的网上书店是1997年在杭州新华书店诞生的,在经过年余的艰苦经营,接待了400多位访问者后,悄然引退,而进入1998年后,作为中国书业传统经营力量的新华书店,正式宣布进入网络领域,先是第九届全国书市首次开通书店网站,后来在1998年12月30日上海书城成为国内首家正规的网上书店,读者在家中可以上网完成浏览,选够,付款的全过程。1999年是网上书店迅速发展的一年,商业公司不断进入网上书店有超过几百家,有自己网站的公司有40多家,这个数目还不断增加。 1.2.3网上书店的优越性

网上书店在价格,时效性,品种,查询方式等方面都有优势。网上书店是一种直销方式,在到书速度和价格上都有优势,目前网上书店的到书时间在北京,上海,广州等大城市一般为1-3天,在外埠则一般3-10天到书,在价格上一般网上书店都有7.5-9折的折扣,如果是特价书折扣就更多了,网上书店的书目数据是任何订购书目都无法比拟的,亚马逊网上书店有300多万种图书,另外还有音乐系列产品和其它教育产品,刚刚成立的北京图书大厦网上书店也有16万种书目数据,“中国寻书网”目前也有50万种书籍,年度将突破100万种图书,网上书店的书目除书名,著者,价格等信息外,还有封面,内容简介,目次,评论

等详细信息。同时网上书店的目录查询功能也是传统的按某种分类规则编排的图书征订目录无法比拟的,其以关键词或主题从网上检索某类文献,查准率与查全率都有一定的保障。另外还有一些书更是以网站包销或总代理的形式进行销售,这就意味着一种全新的电子商务模式的开始。

1.3课题目的与意义

随着网络技术的发展,Internet已成为最具市场潜力的技术领域,使用Web技术设计的数据库应用软件,是目前Internet市场的技术中坚,各种Web应用如电子商务,网上购物等都采用这种方式实现。MVC开发模式可以分离数据访问和数据表现,让开发人员可以开发一个可伸缩性的强、便于扩展的控制器,来维护整个流程。

在MVC模式产生之前,业务逻辑全部撰写在表现层JSP中,其弊端是明显的,首先不利于维护,逻辑层与表现层混杂,动辄上千行代码,其次无法复用,整个项目要进行改造时,不得不推倒重来,大大增加了成本。引入MVC模式之后,逻辑层与表现层分离开来,业务逻辑不再关心具体的显示层面,逻辑层的代码量消除了膨胀隐患,表现层也可交由其它非业务人员自由调整,最后完美整合,在层次分工上,比传统模式更加清晰,利于维护,在项目有升迁移植改造需求时,由于业务逻辑层不与表现层直接关联,故可直接使用已有的业务逻辑,大大减少了重构成本。越大的项目中MVC的作用表现的越明显。

进行该系统设计时要保证该系统的扩展性,当有新的业务或现有业务规划调整时能够比较容易的实现,为此采用MVC设计模式对此应用系统进行划分,并最终以三层应用的方式进行部署。在本例中,视图(view)部分由一组JSP页面组成,例如购物页面结算页面。该部分主要提供整个网上购书系统的前段数据的显示。控制(control)部分获得用户的请求,然后根据用户的不同请求调用不同模型(model)提供的不同功能,本例中控制部分使用Servlet实现,模型(model)部分封装了系统的数据及业务规划。

2.MVC设计思想

2.1 MVC设计思想概论

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。 2.1.1 MVC中的M组件

模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 2.1.2 MVC中的V组件

视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 2.1.3 MVC中的C组件

控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

2.1.4 MVC中各组件的关系

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图1所示。

2.2 MVC设计模式特征

模型-视图-控制器设计模式有几个常见特征。用户界面通常是用本身不包含任何业务逻辑的 JSP 文件创建的。这些页面显示 MVC 体系结构的视图组件。

将用户界面中需要执行业务逻辑的表单和超链接提交至映射至操作Servlet的请求 URI。存在此Servlet 类的一个实例,它接收并且处理更改用户与应用程序交互作用的状态的所有请求。此组件表示 MVC 体系结构的控制器组件。

操作 Servlet 选择并调用一个或多个操作以执行请求的业务逻辑。操作通常通过创建或修改存储为请求或会话属性(取决于它们可用的时间)的 Javabean 来处理应用程序与用户交互作用的状态。此类 Java bean 表示 MVC 体系结构的模型组件。操作通常使用Servlet API 的 RequestDispatcher.forward() 设施将控制传递给适当的 JSP 文件以生成用户界面的下一个页面,而不是直接生成用户界面的下一个页面。

2.2.1使用MVC设计模式的优点

大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。

首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,


基于MVC设计模式对网上购书系统的设计与实现(含源文件)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学二年级加偏旁部首组新字并组词20页

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: