欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于MVC设计模式对网上购书系统的设计与实现.docx

    • 资源ID:15186975       资源大小:77.67KB        全文页数:47页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于MVC设计模式对网上购书系统的设计与实现.docx

    1、基于MVC设计模式对网上购书系统的设计与实现1.绪论 11.1课题背景11.1.1 网上书店系统发展11.1.2 网上书店系统发展现状21.1.13 网上书店发展的优越性 21.2 课题目的与意义32.MVC设计思想42.1 MVC设计思想概论42.1.1 MVC中的M组件42.1.2 MVC中的V组件42.1.3 MVC中的C组件52.1.4 MVC中各组件的关系52.2 MVC设计模式特征62.2.1 使用MVC设计模式的优点62.2.2 MVC设计模式的好处 73.系统总体设计和系统功能概述83.1.1 系统设计目标83.1.2 JavaBean的任务83.1.3 JavaBean的设计

    2、目标及如何被实现93.2 系统功能概述 113.2.1 用户登陆系统和用户注册系统 113.2.2 智能化的辨认功能 113.2.3 图书查询功能 113.2.4先进的购书流程 123.2.5 操作过时管理功能 123.2.6 人性化的操作界面 124.系统的详细设计和实现 124.1 前期准备 124.1.1 JavaBean开发环境 124.1.2 确定书和购物车的属性 134.1.3 事先封装好所有可能出现的误操作 154.14 Http会话174.1.5建立Session 174.2 注册登陆系统的设计和实现 184.3 智能化辨认功能的实现 234.4 查询功能的实现 254.5 购

    3、书系统的实现 275.关键技术的介绍 335.1 Servlet335.1.1 Servlet的解析和载入335.1.2 Servlet的初始化335.1.3 Servlet的多线程和映射345.1.4 Servlet的卸载345.1.5 Servlet的映射技术355.1.6 Servlet的环境355.2 JDBC技术 365.2.1 JDBC工作机制 365.2.2 JDBC API375.2.3 JDBC的优点和缺点 385.3 JavaBean技术 395.3.1 JavaBean概述 395.3.2 JavaBean和企业Bean的区别395.3.3 JavaBean的发展 395

    4、.3.4 JavaBean的需求 39结论 40谢辞40参考文献42基于MVC设计模式的Java Web应用对网上购书系统的设计与实现摘要 随着网络技术的发展,Internet已成为最具市场潜力的技术领域,使用Web技术设计的数据库应用软件,是目前Internet市场的技术中坚,各种Web应用如电子商务,网上购物等都采用这种方式实现。MVC开发模式可以分离数据访问和数据表现,让开发人员可以开发一个可伸缩性强的、便于扩展的控制器,来维护整个流程。本文采用JSP、Servlet、JavaBean和JDBC等一些JAVA WEB相关技术实现了一个简单的网上购书系统,该系统通用性强,经过简单的修改就可

    5、以应用于更广泛的网上购物系统,具有一定的推广价值。关键词 MVC;JSP;Servlet; JDBC; JavaBean1.绪论1.1课题背景1.1.1课题来源 Java这门课程是大学的一门专业课,学的时候十分感兴趣,但毕竟学校里学的真正能运用到实际商业工作中的东西很少。我在实习公司的实习职务就是Java开发人员。由于公司正在帮助另外一家公司开发一个网上购物系统,所以最近在公司前辈那学到这一方面的知识比较多一点,同时感觉这样一个系统的实用性很大,所以决定以此来定我的毕业设计课题。当然,网上购物是一个很大的系统,对于毕业设计来说太大而且开发时间过长,并不可能靠我一个人在如此短的时间内完成,所以选

    6、择一个其中的分支购书系统。对于这样的一个系统开发的时间相对来说短很多并且单独这样一个系统也可以投入商业活动来赢利了,有一定的实际意义。个人感觉定这样一个课题对于自己实习上的专业技能是一个很好的检验,可以为以后自己的工作做更好的准备,同时可以从公司同事开发的系统中借鉴不少好的东西和自己没想到的东西,同时又可以提出自己的个人想法给公司,当然还能得到同事的相关指点,十分有意义。1.2.1网上书店系统发展Internet 的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所蕴含的经济价值的无穷商机,并积极投身于电子商务活动.实际上,电子商务是一些商

    7、业行为的电子化,例如网上书店,网上贸易,就网上书店来说,网上书店是目前应用最广,最成功的典范之一,网上书店的崛起对传统的图书流通体系产生了强烈的冲击,有效地缩短了图书流通发行环节,将广大读者,图书,出版者,发行者紧密地结合在一起,大大提高了图书流通率。1.2.2网上书店系统发展现状西方国家网上书店概况:世界上第一家网上书店是1991年在美国联机公司AOL采购网络上建立的阅读美国书店,目前最负胜名的是美国西雅图亚马逊图书公司的亚马逊网上书店。它创建于1995年,供书品达310余万种年顾客达500万人次,其价格优惠20-50%。金融结算制度完善,配送服务高效。实现了零库存运转。英国网上书店较著名的

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

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

    10、息。同时网上书店的目录查询功能也是传统的按某种分类规则编排的图书征订目录无法比拟的,其以关键词或主题从网上检索某类文献,查准率与查全率都有一定的保障。另外还有一些书更是以网站包销或总代理的形式进行销售,这就意味着一种全新的电子商务模式的开始。1.3课题目的与意义随着网络技术的发展,Internet已成为最具市场潜力的技术领域,使用Web技术设计的数据库应用软件,是目前Internet市场的技术中坚,各种Web应用如电子商务,网上购物等都采用这种方式实现。MVC开发模式可以分离数据访问和数据表现,让开发人员可以开发一个可伸缩性的强、便于扩展的控制器,来维护整个流程。在MVC模式产生之前,业务逻辑

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

    12、,为此采用MVC设计模式对此应用系统进行划分,并最终以三层应用的方式进行部署。在本例中,视图(view)部分由一组JSP页面组成,例如购物页面结算页面。该部分主要提供整个网上购书系统的前段数据的显示。控制(control)部分获得用户的请求,然后根据用户的不同请求调用不同模型(model)提供的不同功能,本例中控制部分使用Servlet实现,模型(model)部分封装了系统的数据及业务规划。2.MVC设计思想2.1 MVC设计思想概论MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应

    13、用被分成三个层模型层、视图层、控制层。 2.1.1 MVC中的M组件模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重

    14、要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 2.1.2 MVC中的V组件视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及

    15、用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。2.1.3 MVC中的C组件 控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择

    16、什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 2.1.4 MVC中各组件的关系模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系

    17、和各自的主要功能,如图1所示。 2.2 MVC设计模式特征模型视图控制器设计模式有几个常见特征。用户界面通常是用本身不包含任何业务逻辑的 JSP 文件创建的。这些页面显示 MVC 体系结构的视图组件。将用户界面中需要执行业务逻辑的表单和超链接提交至映射至操作Servlet的请求 URI。存在此Servlet 类的一个实例,它接收并且处理更改用户与应用程序交互作用的状态的所有请求。此组件表示 MVC 体系结构的控制器组件。操作 Servlet 选择并调用一个或多个操作以执行请求的业务逻辑。操作通常通过创建或修改存储为请求或会话属性(取决于它们可用的时间)的 Javabean 来处理应用程序与用户

    18、交互作用的状态。此类 Java bean 表示 MVC 体系结构的模型组件。操作通常使用Servlet API 的 RequestDispatcher.forward() 设施将控制传递给适当的 JSP 文件以生成用户界面的下一个页面,而不是直接生成用户界面的下一个页面。2.2.1使用MVC设计模式的优点大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对

    19、应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。 首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用

    20、的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。2.2.2 MVC 设计模式的好处将模型视图控制器部分应用于 Java Web 应用程序开发有几个好处: 可以在一定程度上分布开发成果,实现了在 Web 应用程序中的一部分的更改不需要对其它部分进行更改。负责编写业务逻辑的开发者可以独立于负责控制流的开发者工作,而 Web

    21、 页面设计者可以独立于这些开发者工作。 可以更容易建立工作原型。可以执行如下操作,例如: 1. 创建一个原型 Web 应用程序,它访问几个基于工作站的程序。 2. 更改应用程序以响应用户反馈。 3. 在同一平台或其它平台上实现生产级程序。 除了对程序本身所进行的工作外,只需对配置文件或名称服务器内容进行调整,而不需要对其它源代码进行调整。 可以更容易地迁移旧程序,因为视图与模型和控件是分开的,并且可以根据平台和用户类别进行裁剪。 可以维护由不同位置上的不同技术组成的环境。 MVC 设计具有组织结构,该结构更好地支持可伸缩性(构建更大的应用程序)并且易于修改和维护(原因是任务区分得更清楚)。 3

    22、.系统总体设计和系统功能概述3.1.1 系统设计目标本系统设计的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软

    23、件工程方法可以同时提高质量与生产率。3.1.2 JavaBean的任务JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。 1. 一个开发良好的软件组件应该是一次性地编写,而不需要再重新编写代码以增强或完善功能。因此,JavaBean应该提供一个实际的方法来增强现有代码的利用率,而不再需要在原有代码上重新进行编程。除了在节约开发资源方面的意义外,一次性地编写JavaBean组件也可以

    24、在版本控制方面起到非常好的作用。开发者可以不断地对组件进行改进,而不必从头开始编写代码。这样就可以在原有基础上不断提高组件功能,而不会犯相同的错误。 2. JavaBean组件在任意地方运行是指组件可以在任何环境和平台上使用,这可以满足各种交互式平台的需求。由于JavaBean是基于Java的,所以它可以很容易地得到交互式平台的支持。JavaBean组件在任意地方执行不仅是指组件可以在不同的操作平台上运行,还包括在分布式网络环境中运行。 3.JavaBean组件在任意地方的重用说的是它能够在包括应用程序、其他组件、文档、Web站点和应用程序构造器工具的多种方案中再利用。这也许是JavaBean

    25、组件的最为重要的任务了,因为它正是JavaBean组件区别于Java程序的特点之一。Java程序的任务就是JavaBean组件所具有的前两个任务,而这第3个任务却是JavaBean组件独有的。3.1.3 JavaBean的设计目标及其如何被实现现在我们来看一实现JavaBean的一些具体的主要设计目标: 1.紧凑而方便的创建和使用 JavaBean紧凑性的需求是基于JavaBean组件常常用于分布式计算环境中,这使得JavaBean组件常常需要在有限的带宽连接环境下进行传输。显然,为了适应传送的效率和速度,JavaBean组件必须是越紧凑越好。另外,为了更好地创建和使用组件,就应该使其越简单越

    26、好。通常为了提高组件的简易性和紧凑性,设计过程需要投入相对较大的功夫。 现在已有的组件软件技术通常是使用复杂的API,这常常搞得开发者在创建组件时晕头转向。因此,JavaBean组件必须不仅容易使用,而且必须便于开发。这对于组件开发者而言是至关重要的,因为这可以使得开发者不必花大量功夫在使用API进行程序设计上,从而更好地对组件进行润饰,提高组件的可观赏性。 JavaBean组件大部分是基于已有的传统Java编程的类结构上的,这对于那些已经可以熟练地使用Java语言的开发者非常有利。而且这可以使得JavaBean组件更加紧凑,因为Java语言在编程上吸收了以前的编程语言中的大量优点,已经使开发

    27、出来的程序变得相当有效率。 2.完全的可移植性 JavaBean API与操作基础的独立于平台的Java系统相结合,提供了独立于平台的组件解决方案。因此,组件开发者就可以不必再为带有Java applet平台特有的类库而担心了。最终的结果都将是计算机界共享可重复使用的组件,并在任何支持Java的系统中无需修改地执行。 3.继承Java的强大功能 现有的Java结构已经提供了多种易于应用于组件的功能。其中一个比较重要的是Java本身的内置类发现功能,它可以使得对象在运行时彼此动态地交互作用,这样对象就可以从开发系统或其开发历史中独立出来。 对于JavaBean而言,由于它是基于Java语言的,所以它就自然地继承了这个对于组件技术而言非常重要的功能,而不再需要任何额外开销来支持它。 JavaBean继承在现有Java功能中还有一个重要的方面,就是持久性,它保存对象并获得对象的内部状态。通过Java提供的序列化(serialization)机制,持久性可以由JavaBean自动进行处理。当然,在需要的时候,开发者也可以自己建立定制的持久性方案。 4.应用程序构造器支持 JavaBean的


    注意事项

    本文(基于MVC设计模式对网上购书系统的设计与实现.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开