




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计网上书店系统设计与开发毕业论文目录第一章 JAVA的网络功能、编程及Struts概述71-1JAVA的网络功能与编程 1-1-1JAVA语言简介71-1-2 JAVA语言在网络上的应用71-1-3 JSP的基础Servlet 技术81-2JAVA的网络功能与编程91-2-1 Struts的由来和发展91-2-1-1 MVC简介101-2-2 Struts优缺点121-2-3 Struts的工作流程13第二章 网上书店需求分析152-1功能需求152-1-1功能划分152-1-2确定执行者172-1-3确定用例172-2性能需求212-2-1数据精确度212-2-2时间特性212-2-3适应性212-3运行需求222-3-1用户界面222-3-2硬件接口222-3-3软件接口222-3-4故障处理222-4其它需求222-4-1 系统的功能实现情况:232-4-2 系统的安全性:232-4-3 系统的容错性:232-4-4 系统的封闭性:23第三章 网上书店总体设计233-2 功能设计25第四章 数据库设计与实现264-1 数据库的需求分析264-2 创建数据表的脚本26第五章 程序实现305-1 网上书店程序实现代码305-2 网上书店基本流程47第六章 程序实现486-1 网上书店各页面功能486-1-1 网上书店首页bookMain.jsp详细功能及描述496-1-2 显示图书详细信息bookShow.jsp页面详细功能及描述616-1-4网上书店客户登录userLogin.jsp页面详细功能及描述726-1-5 网上书店客户注册userRegister.jsp页面详细功能及描述726-1-6 选择送货方式及付款方式orderAddress.jsp页面详细功能及描述736-1-7 确认订单信息orderConfirm.jsp页面详细功能及描述736-1-8 显示客户所有订单信息orderHistory.jsp页面详细功能及描述746-2 业务逻辑层各bean功能756-2-1 封装了数据库相关操作的bean(DB.java)756-2-2 封装了图书住处处理的bean(Book.java)756-2-3 封装了图书分类信息处理的bean(BookCat.java)766-2-4 封装了图书查询及显示条件的bean(SearchStatus.java)766-2-5 封装了购物车信息处理的bean(ShopCart.java)766-2-6 封装了订单住处处理的bean(Order. java)766-2-7 封装了客记信息处理的bean(User.java)766-38 控制处理层77总结81参考文献81第一章 JAVA的网络功能、编程及Struts概述1-1JAVA的网络功能与编程1-1-1JAVA语言简介 Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。1-1-2 JAVA语言在网络上的应用 Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。1-1-3 JSP的基础Servlet 技术 Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。1-2JAVA的网络功能与编程1-2-1 Struts的由来和发展Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。 Struts 架构一经推出,即受到 Java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具,在目前 Java Web 程序员的招聘要求中,几乎都提出了对 Struts 的要求,精通 Struts 架构已经成为 Java Web 程序员必备的技能。 1-2-1-1 MVC简介模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1、模型(Model)模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图(View)视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性 早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象 管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能 JSP Model 1 与 JSP Model 2SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意 JSP Model 1 JSP Model 2 model2 容易使系统出现多个Controller,并且对页面导航的处理比较复杂 有些人觉得model2仍不够好,于是Craig R. McClanahan 2000年5月 提交了一个WEB framework给Java Community.这就是后来的Struts.2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一 Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑1-2-2 Struts优缺点优点: Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。缺点: Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EEMVC实现方式。1-2-3 Struts的工作流程下图是Struts的工作流程,所有的请求都提交给ActionServlet来处理。ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来处理, ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有的配置信息 RequestProcessor根据提交过来的url,如*.do,从ActionMapping 中得到相应的ActionForn和Action。然后将request的参数对应到ActionForm中,进行form验证。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionFoward。 ActionFoward是对mapping中一个foward的包装,对应于一个url ActionForm使用了ViewHelper模式,是对HTML中form的一个封装。其中包含有validate方法,用于验证form数据的有效性。ActionForm是一个符合JavaBean规范的类,所有的属性都应满足get和set对应。对于一些复杂的系统,还可以采用DynaActionForm来构造动态的Form,即通过预制参数来生成Form。这样可以更灵活的扩展程序。 ActionErrors是对错误信息的包装,一旦在执行action或者form.validate中出现异常,即可产生一个ActionError并最终加入到ActionErrors。在Form验证的过程中,如果有Error发生,则会将页面重新导向至输入页,并提示错误。 Action是用于执行业务逻辑的RequsestHandler。每个Action都只建立一个instance。Action不是线程安全的,所以不应该在Action中访问特定资源。一般来说,应改使用 Business Delegate 模式来对Business tier进行访问以解除耦合。 Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。第二章 网上书店需求分析2-1功能需求2-1-1功能划分网上书店系统功能主要由前台图书展示及销售、后台管理两大部分组成。(一) 前台实现功能:1. 新客户注册客户注册成为本站会员,要求用户个人提供身份证号码与扫描件进行实名认证,企业需提供营业执照扫描件以及法人身份证件。2. 书籍分类搜索用户可根据对书籍的分类浏览和输入关键字进行本站包含书籍的查找浏览。3. 热销排名榜对最近书籍的(关注度和销售量)进行排行,为用户提供热门书籍的更新。4. 新书籍上架把本站最近入库的书籍显示出来方便客户知道本站书籍的更新。5. 实现购物车功能模块实时显示用户当前所购数目,可以增加或删除。6. 订单查询功能客户确认购买号即生成一个唯一的订单号,客户依此号码可以查询所购数目及书的情况。7. 在线支付功能/网上银行支付功能客户确认购买后实现在线支付货款或者使用网上银行支付的选择和实现。8. 前台页面管理注册会员对自己资料的修改,账户的管理和书籍收藏夹的管理,以及对于自己登陆界面风格的管理。(二) 后台管理实现功能:1. 用户注册信息管理网站管理人员对用户注册信息的编辑分类和管理。2. 订单添加/删除/修改管理功能对于用户提交的订单进行审核,并实现对订单的添加/删除/修改管理。3. 书籍信息管理a) 出版社管理:可以在此处增加或修改删除相关信息,请确保此处信息的真实性。b) 类别设置:对书目类别进行相应的操作(增加,删除,修改)c) 分类管理:将相关图书进行分类操作(注:此操作可以在图书入库的时候进行选择)4. 客户权限管理管理人员实现对用户的分级,不同级别的享受到的折扣不同,或者还有其他的增值服务。高级用户需要通过支付年费,或者注册时间到达一定限额后自动生成为一定级别的用户。5. 订阅系统管理对用户提交的订阅信息进行审核。6. 客户访问统计对网站的流量进行日,周和季度的统计。反馈网站的浏览量。7. 网站统计管理网站数据的统计,包括会员,书籍和访问量,是系统的数据操作核心。 2-1-2确定执行者本系统的执行者是公司的管理人员。2-1-3确定用例并用用例图表示 系统流程图 客户信息E-R图 图书信息E-R图 实体之间的E-R图 顶层数据流图 选购数据流图 订购数据流图2-2性能需求2-2-1数据精确度A要按照严格的数据格式输入,否则系统不予响应进行处理。B. 查询时要保证查全率,所有响应域包含查询关键字的记录都应能查到。因为通常有文件的记录会很多,所以本系统采用了两种方法进行查询;直接查询和模糊查询。2-2-2时间特性响应时间1秒、更新处理时间3-5秒、数据转换与传输时间2-3秒、运行时间35秒。2-2-3适应性【在操作方式、运行环境、与其它软件的接口以及开发计划等发生变化时,应具有的适应能力。】2-3运行需求2-3-1用户界面人性化界面,操作简单,视图优美。采用菜单界面驱动方式,给用户带来便利。2-3-2硬件接口本软件不需要特定的硬件或硬件接口进行支撑2-3-3软件接口运行于Windows XP及更高版本的操作系统2-3-4故障处理正常使用时不应出错,若运行遇到不可恢复的系统错误,也必须保证数据库完好无损。调试中遇到的问题及解决的方案:(1) 遇到跳出“数据库已经关闭”提示信息阻止程序运行时 可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况又一次运用打开语句打开此表。(2) 关于空记录带来的麻烦有些空记录往往会使程序无法运行。此时你可用“if not isnull”语句先判断一下是否为空记录,再操作。(3) 有些运行错误也可以捕获异常进行处理。2-4其它需求【如可使用性、安全保密、可维护性、可移植性等。】2-4-1 系统的功能实现情况:用户可在本系统下实现各种用户要求的功能2-4-2 系统的安全性:对于系统的重要数据都有密码保护,具有一定的保护性对用户提供证书支持(此功能在后续版本中实现)2-4-3 系统的容错性:用户输错数据都会有提示信息,具有较好的容错性能。2-4-4 系统的封闭性:用户的封闭性较好,用户基本上在提示信息下输入数据。第三章 网上书店总体设计3-1系统组成下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。用户表示层(视图)控制处理层(控制器)业务逻辑层(模型)bookMain.jspActionFormActionDBBookShow.jspLoginFormFirstActionConstantsBookShopCart.jspUserFormBookDetailActionBookOrderAddress.jspBookIdFormBookSearchActionBookCatOrderConfirm.jspBookCatIdFormLoginActionOrderUserLogin.jspPageIdFormBookBuyActionShopCartUserRegister.jspBookShopCartFromAddrConfirmActionUserOrderHistory.jspBookSearchFormClearShopCartActionWrong.jspDeliveryFormOrderDelActionOrderIdFormOrderHistoryActionPageCtrlActionRegistActionUpdateShopCartAction3-2 功能设计1图书信息管理该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。2购物车管理用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。3会员注册实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。4订单处理根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。第四章 数据库设计与实现4-1 数据库的需求分析依据网上书店的处理需求,对就数据表的设计及功能如下。A 图书基本信息表:存放网上书店所销售图书的基本信息。B 图书分类基本信息表:存放网上书店所提供图书分类的信息。C 客户基本信息表:存放书店客户的基本信息。D 订单信息表:存放与客户相关的订单的基本信息。E 订单条目详细信息表:存放订单中详细条目的基本信息。4-2 创建数据表的脚本代码如下:_/图书分类基本信息表DROP TABLE bookcat CASCADE CONSTRAINTS;CREATE TABLE bookcat(idNUMBER PRIMARY KEY,catnameVARCHAR2 (40) NOT NULL);/图书基本信息表DROP TABLE book CASCADE CONSTRAINTS;CREATE TABLE book(idNUMBER PRIMARY KEY,catidNUMBER NOT NULLREFERENCES bookcat(id) ON DELETE CASCADE,nameVARCHAR2 (50) NOT NULL,priceNUMBER NOT NULL,salepriceNUMBER NOT NULL,descriptVARCHAR2 (500) NOT NULL,authorVARCHAR2 (50) NOT NULL,contentsVARCHAR2 (2000) NULL,imageVARCHAR2 (50) NULL);/客户基本信息表DROP TABLE storeuser CASCADE CONSTRAINTS;CREATE TABLE storeuser(usernameVARCHAR2 (20) PRIMARY KEY,passwordVARCHAR2 (20) NOT NULL,nameVARCHAR2 (20) NOT NULL,telVARCHAR2 (20) NOT NULL,addressVARCHAR2 (100) NOT NULL,emailVARCHAR2 (50) NULL);/订单信息表DROP TABLE orders CASCADE CONSTRAINTS;CREATE TABLE orders(idNUMBER PRIMARY KEY,usernameVARCHAR2 (20) NOT NULLREFERENCES storeuser(username) ON DELETE CASCADE,timeDATE NOT NULL,deliveryVARCHAR2 (20) NOT NULL,paymentVARCHAR2 (20) NOT NULL );/订单条目详细信息表DROP TABLE orderdetail CASCADE CONSTRAINTS;CREATE TABLE orderdetail(orderidNUMBER NOT NULLREFERENCES orders(id) ON DELETE CASCADE,bookidNUMBER NOT NULLREFERENCES book(id) ON DELETE CASCADE,countNUMBER NOT NULL,priceNUMBER NOT NULL);_第五章 程序实现5-1 网上书店程序实现代码Index.jsp 页面程序设计内容:网上图书超市 % rs_book.last(); int RecordCount=rs_book.getRow(); /获取记录总数 rs_book.first(); for(int i=1;i img src=manage/cover/ width=76 height=110 作者: 定价:(元) input name=Submit5 type=submit class=btn_grey value=购买 onClick=window.location.href=cart_Add.jsp?ISBN= input name=Submit6 type=submit class=btn_grey value=查看 onClick=window.location.href=book_d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息技术构建高校学生互动与自我管理平台
- 财务风险的定量与定性评估方法探讨
- 临床护理教育中跨学科协作的现状与前景
- 离婚债务合同(标准版)
- 领用学校电脑申请报告(3篇)
- 领取防汛物资申请报告(3篇)
- 公司司机安全培训会议课件
- zo1安全培训课件
- 特种设备(电梯、叉车、锅炉)事故应急预案
- 临界安全培训课件
- 医院污水处理站服务外包项目投标方案(技术方案)
- 2024年全球及中国运动功能性针织面料行业头部企业市场占有率及排名调研报告
- 拆除清运合同协议
- 雨污合流管网改造工程施工组织设计
- 梗阻性黄疸的护理病例讨论
- 俱乐部账务管理制度
- 项目持续改进管理制度
- 钢网架结构同气膜结构方案比较
- GJB450B标准解读与应用
- 问诊流程及规范
- 2025年厨余垃圾无害化处理合同
评论
0/150
提交评论