安装游戏开启声音的时候弹出框,由于找不到IibcurI ssI dII 无法继续执行代码,这句话。

当前位置: >>
基于SSI框架的网上购物系统的设计与实现毕业设计论文
毕业设计(论文)课 题 名 称基于 SSI 框架的网上购物系统的设计与实现 学 生 姓 名 学 号系、年级专业 指 导 教 师 职 称年月日 邵阳学院毕业设计(论文)摘要该网上购物系统属于电子商务平台的一种, 它根据现有比较流行的网上购物系统 和互联网技术与 B2C(Business to Consumers) 模式开发设计而成。使用该系统,除 了能够提高市场竞争力,扩大商家规模外,对于降低经营成本,提高工作效率也是非 常有利的。 该论文通过现有的网上购物系统情况及开发背景进行说明介绍, 从而引出在当前 形势下对该系统的设计需求, 并根据这些设计需求确定了相应的设计目标与总体设计 方案, 接着具体叙述了该系统的详细设计过程与实现方法,最后进行系统检测并对需 要改进的地方进行了描述。 该系统基于现在比较流行的 MVC 设计模式,主要分为了两个大模块:前台模块和 后台模块。前台模块由用户注册登录、新闻动态、留言簿、商品信息展示、商品放入 购物车以及商品结算等几大模块构成,后台模块则由用户信息管理、商品信息管理、 订单管理等子模块构成。 该系统采用 Struts2+Spring3.0+IBatis2.3 三大框架集成开发。 使用 JSP 技术进 行动态页面的设计,采用 HTML+JavaScript+CSS+AJAX 等前端技术,后台数据库选用 Oracle 11g 数据库。为了提高系统的安全性能,增强代码的重复使用性,故选用程 序的关键代码的封装采用 JavaBean 组件技术实现。关键字:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11g-I- 邵阳学院毕业设计(论文)ABSTRACTThis system is based on mvc design mode, majoring at two modules: fore ground and background. The foreground mainly includes module of members hip registration, news and trends, guestbook, commodity information display, select goods into the shopping cart the background has m ainly provided users with the following functions: customer information management, commodity information management, order management and so on.This system is adopte d by three integrated development of Struts2+Spring3.0+IBatis2.3, using JSP technology in dynamic page design, taking front-end technology like HTML+JavaScript+CSS+AJAX, choosi ng Oracle 11g as the data base of background, considering from the security and reusing code of the system, key codes has been secured by JavaBean tech nology.Keywords:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11g- II - 邵阳学院毕业设计(论文)目录摘要........................................ 错误!未定义书签。 ABSTRACT .................................... 错误!未定义书签。 1 网上购物系统绪论 ........................................... 1 1.1 系统开发背景 .......................................... 1 1.2 系统实现的目标 ........................................ 2 1.3 系统的开发意义 ........................................ 2 1.4 系统开发平台与工具 .................................... 3 1.5 系统的开发技术及主要架构 .............................. 4 2 系统分析 .................................................. 10 2.1 网上购物系统概述 ..................................... 10 2.2 网上购物系统的可行性分析 ............................. 10 2.3 网上购物系统需求分析 ................................. 11 3 系统概要设计 .............................................. 13 3.1 项目规划 ............................................. 13 3.2 系统结构图 ........................................... 13 3.3 系统流程分析 ......................................... 14 4 系统数据库设计 ............................................ 16 4.1 数据库设计的重要性 ................................... 16 4.2 数据库设计规范 ....................................... 16 4.3 数据库字典 ........................................... 17 5 系统详细设计 .............................................. 22 5.1 开发规范 ............................................. 22 5.2 系统框架说明 ......................................... 23 6 系统测试及难点分析 ........................................ 30 6.1 系统测试 ............................................. 30 6.2 系统运行结果 ......................................... 32 6.3 系统中所存在的问题及解决方案 ......................... 41 参考文献.................................................... 45 致谢........................................................ 46-1- 邵阳学院毕业设计(论文)1 网上购物系统绪论1.1 系统开发背景1.1.1 网上购物的发展 最近的几年,Internet 的迅猛发展使得互联网日渐成为了信息收集与提供的佼 佼者,并逐步成为了一种传统的流通渠道。在互联网的带动下,电子商务开始进入人 们的视野,网上商店开始流行起来。 网上购物系统作为一种企业对企业(B2B),企业对消费者(B2C),消费者对消 费者(C2C)的电子商务前端商务平台,对其商务活动有着非常重要的作用。本文主要 对建设 B2C 网上购物系统进行讨论。 网上购物系统是一种商业信息系统,这个系统中包含了动态与静态两大信息资 源, 其中动态信息资源是指像培训信息、 会议安排及商品报价之类的时刻变化的信息, 而静态信息资源则是指像公司简介、公司制度及公司管理等不经常更新变化的信息。 该系统在交互功能方面表现突出, 商家与用户之间通过该系统能够更为简便地传递信 息,完成 EDI 交易及电子贸易,让企业之间文件与资金无纸化交换成为了现实。 1.1.2 网上购物系统的现状 就现在而言,在中国最普遍使用的是 PHP 与 ASP 技术,JSP 作为一种较为新颖的 技术,虽然在国外,特别是国外的电子商务类网站中的应用已较为广泛,但在国内, 它的应用领域依旧较小。 PHP 技术由于自身存在的一些缺陷,比如规模支持与多层结构支持,使得它更适 用于一些小型的商业网站,如新浪、中国人等,在大型的电子商务网站中使用,它的 缺陷就会暴露无疑。 加之 PHP 没有统一的数据库接口支持,导致它在电子商务中并不 适用。但 PHP 技术缺少这类支持,并且 PHP 没有统一的数据库接口支持,导致它在电 子商务中并不适用。 ASP 技术不但能够取得 ActiveX 规模支持,而且能够取得结构支持,JSP 技术与 ASP 一样,也能够获取规模支持与结构支持。 当今世界,JSP/Servlet 受到许多大型电子商务解决方案提供商的喜爱。例如较 为有名的 IBM 的 E-business 与西方的另一个广为人知的电子商务软件提供商 Intershop,它们的核心分别选用的是 JSP/Servlet 的 WebSphere 与 JSP/Servlet。 其中,Intershop 之前的产品 Intershop1 2, 3, 4 在电子商务软件占据了市场的主-1- 邵阳学院毕业设计(论文)要份额,虽然这些产品采用的是 CGI 来进行支持的,但在那之后,Intershop 又推出 了一个应用 JSP/Servlet 的电子商务应用服务――Enfinity, 并声称再也不开发传统 软件。由此观之,以上三种技术,将来最大为发展应当非 JSP 莫属。 综上所述,JSP、PHP、ASP 三者各有千秋,每个技术都有一定数量数量的支持者 和反对者, 因此我们在开发实际应用时应当从实际情况考虑,选择一个最适合当前项 目的技术。本文中系统选用的是较为新颖的 JSP 技术,原因如下:一是 JSP 技术的安 全性与跨平台性较好, 二是希望能够从设计这个系统的过程当中,对这门编程语言得 到更深入的了解。1.2 系统实现的目标眼下流行的网上购物系统大多都是外观与内在同时兼备的系统, 既有美丽的页面 布局,更有严谨的规划设计,对每一个细微的环节都不放过。只有这样,在电子交易 环节中才避免发生错误。 传统管理信息系统的信息获取依靠的是专业人员在管理系统 的数据库中进行信息的录入来完成的,当信息量较小的时候,这种方法可以应用在许 多场合。但是,一旦数据量较大,且专业性较强时,使用这种录入方法所需费用以及 从录入的出错率都会相应上升。 在本设计中, 采用 jsp 实现动态页面, ibatis 与数据库进行数据的交互, struts2 充当控制层,连接页面和数据库,并处理相关的业务,spring 主要用于提供依赖注 入、数据源和事务管理。 通过以上技术的有机结合, 可以给用户带来一个交互性良好,安全稳定的网上购 物系统,同时也利于后期维护和升级。1.3 系统的开发意义互联网为传统的商业运作在技术上提供了一种可行性方案, 使得传统的商业运作 模式随着互联网的发展有所改变。现在,这种方案已经广泛应用到了我们的实际生活 中,也就是我们常常锁说的:电子商务。这个方案是利用互联网的技术与协议,为所 有的买家、卖家,生产商、合伙人建立起各式各样的企业内部网与企业外部网,通过 采用廉价通信方法将大家紧密地联系在了一起, 让空间和时间不再是阻隔相互联系交 易的障碍,从而极大地降低交易的成本,扩大交易的范围。 我们经常上的淘宝网与当当网就是现在比较流行的两个网上购物系统, 二者均是 非常出色的电子商务网站, 同时也是其他网站学习的优秀典范。 所以, 在设计系统中, 我们不妨参考他们的思想, 这将有助于我们对电子商务网站的开发设计、整个网站应-2- 邵阳学院毕业设计(论文)有的系统功能和注意事项得到更深入的认识与了解。 电子商务网站的设计和完成需要涉及到很多技术层面上的问题,所以在设计中, 我们应该避免纸上谈兵,通过在实践操作中来掌握相关技术,如:后台数据库与动态 网页制作的设计及管理的使用。1.4 系统开发平台与工具1.4.1 操作系统平台 Windows 7该系统开发平台采用由微软公司(Microsoft)开发的操作系统 Windows7 旗舰 版 64 位,处理器 Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz 2.30GHz,安装内存 10.0GB。 1.4.2 项目开发工具 MyEclipse 本系统采用的项目开发工具是 MyEclipse 企业级工作平台(简称 MyEclipes), 它是对 EclipseIDE 的扩展,不但具有完整的编码、调试、测试与发布功能,而且能 够完全支持 HTML,Javascript,JSP,Spring,SQL 及 Hibernate 等,是一个功能丰 富的 JavaEE 集成开发环境。该平台不仅有利于数据库与 JavaEE 的开发、发布,在应 用程序服务器的整合方面也非常合适,使用它能够大幅度地提高我们的工作效率。 由于 MyEclipse 功能的强大与支持的广泛, 使得它特别适用于各类开源产品的支 持, 可以说, MyEclipse 几乎囊括了现今全部的主流开源产品的开发, 因此, 对于 Java, J2EE 的开发而言,MyEclipse 是一个非常出色的 Eclipse 插件集合。 1.4.3 项目管理工具 Maven Maven 被定义为一个项目管理工具,它的组成比较复杂,包括一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle), 一个依赖管理系统(Dependency Management System),以及用来运行定义在生命周期 阶段中插件目标的逻辑。Maven 在使用过程中,如果用一个明确定义的项目对象模型 来描述项目,有一组共享的插件,作为 Maven 应用的横切的逻辑。 如果运行 mvn install 这条指令时,将会调用 Maven 的生命周期,Maven 会有序 的执行下去直至指定的生命周期。在遍历的过程中,Maven 会运行默认的插件目标, 这些目标将会实现类似一个 JAR 文件的编译和创建的工作。除此之外,项目报告不仅 能通过 maven 进行方便的管理,还可以生成站点,管理 JAR 文件等。-3- 邵阳学院毕业设计(论文)1.4.4 版本控制工具 Git Git 是由 Linus Torvalds 开发的一款供用户无偿使用的开源分布式版本控制系 统,它能够高速有效地处理各种各样,或大或小的项目版本管理。 在项目中使用 Git,不仅有助于项目的团队开发和提高开发效率,而且能够精确 地控制项目的版本, 开发人员每次 Git 服务器获取最新的项目代码,完成相应模块地 开发后,再提交的 Git 服务器上,并附上本次提交内容的相关信息,如果出问题,可 以回滚之前的版本。当然,如果当前版本在使用,我们可以新建分支,继续开发,等 开发完成之后,再合并到主分支,这样既不影响当前版本的使用,也可以继续开发任 务。 1.4.5 服务器 Tomcat 服务器 Tomcat 属于轻量级应用服务器,常使用于中小型系统与并发访问用户较 少的场合中。它是一个供用户无偿使用的开源 web 应用服务器,也是人们开发、调试 JSP 程序时的第一选择。对于初学者而言,我们不妨这么理解,如果将 Apache 服务 器配备在一台机器上, 那么对于 HTML 页面的访问请求可通过它来进行响应。实际上, Tomcat 部分是 Apache 服务器的扩展,但由于它的独立运行,因此 tomcat 在运行时 是作为一个与 Apache 独立的进程单独来运行的。 1.4.6 前端调试工具 FireBug Firebug 是基于 firefox 下的一个扩展,可以调试如 html,css 等所有网站的语 言。此外,Firebug 还能够进行 html,css,dom 的查看和调试,网站的整体分析等 等,功能非常强大。其中,最令人称赞的当属它的 javascript 调试功能,它可以运 用于各种浏览器中(如 IE,firefox,Safari 等),并且使用十分简便。总的来说, Firebug 就是一套完整、强大的开源 web 开发软件。 1.4.7 数据库 Oracle 11g Oracle 11g 是一种功能比较全面并且稳定的关系型数据库,其大大小小的功能就 多达四百余种。其性能较于旧版本更为优越,不仅具有优良的伸展性与可用性,且更 为安全。 即使在低成本的服务器与存储设备构成的网格上也能方便地运行。而且还拥 有自己一套 sql 标准。1.5 系统的开发技术及主要架构-4- 邵阳学院毕业设计(论文)1.5.1 开发技术的选择(1)JSP一个合理的开发技术是一个网站是否能够开发完成的重要基础,选择合理的开发 技术能够使网站的开发事半功倍。因此,我们首先需要一个合适的动态网页开发技术 来进行网站的设计。当前,ASP、PHP、JSP 这三种动态网页技术较为流行。三者各自 特性如表 3.1 所示。表 3.1 asp/jsp/php 比较表 技术名称 对数据库的支持 开发难易度 使用平台 安全性 对组件的支持 执行方式 跨平台 ASP 好 容易 Windows9X/NT 不好 支持 解释执行 不好 JSP 好 容易 Windows/UNIX 好 支持 编译之后执行 好 PHP 好 较难 UNIX 不好 不支持 解释执行 好虽然这三者技术都是通过传统的 HTML 代码里的 HTML 标签来扩展组成页面的, 但 从表 3.1 而言,可以明显得知,各方面表现最好的是 JSP 技术。特别是在跨平台性与 安全性上,JSP 技术相对于另外两种技术要好得多,所以,经过比较,我们决定使用 给予 Java 的 JSP 技术来进行动态网页的开发。 (2)struts2 struts2 是在以前的 Webwork 和 XWork 框架基础上改进而成的一个 Java Web 开 源框架,同时也是一个以 POJO 的 Action 为基础的 MVC Web 框架,它继承了 Webwork 和 XWork 框架的优良性能,功能十分强大。现在的 struts2 在 Java Web 开发界中具 有不可撼动的地位,之所以该框架如此深得人心,在开发人员看来,这与其优良的设 计是分不开的。 struts2 的优点: ① 基于 MVC 架构的设计,使得 struts2 具有清晰明了的框架结构及开发流程,采用 struts2 进行开发,能够很好地开发过程。 ② 利用 OGNL 传递参数:OGNL 提供了一个简单的方法用于在 struts2 中进行各类作用域里的数据访问,通过这种方法来获取 Request,Attribute,Application,-5- 邵阳学院毕业设计(论文)Session,Parameters 里的数据会十分方便。大大简化了开发过程中取得这些数据时 所需的代码量。 ③ struts2 的拦截器:struts2 具有的很多功能都是依靠拦截器来完成的,比如上传文件、处理异常和验证等。它的拦截器是一个 Action 级别的 AOP,能够进行 配置与重复使用, 如果把类似登录验证,权限验证这样的一些通用功能加入到拦截起 中,就可以实现一些 Java Web 项目里表位通用的功能。 ④ 测试的方便:由于 struts2 的 Action 均为简单的 POJO,所以用它来进行用例的编写测试非常方便,极大地简化了 Java Web 项目的测试。 ⑤ ⑥ 模块化:模块化是 struts2 体系架构的基本思想。 其它优点:在应用程序中添加全局结果,以及为配置文件的异常进行处理,这样一来,当处理过程当中,发生了指定异常时,即可跳至特定页面。这一功能十分 实用。 (3)ibatis ibatis 相比 Hibernate 和 Apache OJB 之类的&一站式”ORM 解决方案来说,它是 一种“半自动化”的 ORM 实现。何为“半自动”?也许在理解上会有些生涩。其实, 我们这里所说的“半自动化”是相对于目前主流的“全自动化”ORM 而言的。“全自 动”ORM 不仅能够提供 POJO 与数据库表之间的映射,还可以自动生成和执行 SQL,例 如 Hibernate 与 Apache OJB,它们拥有 POJO 到数据库表的全套映射机智,并且对数 据库结构的封装也比较完整。通常程序员只用对 POJO 到数据库表的映射关系做好定 义, 就能够利用 OJB 或 Hibernate 提供的方法实现对持久层的操作。甚至于都不要求 程序员能熟练地掌握 SQL 都可以完成这些操作,因为 OJB、Hibernate 可以依据设定 的存储逻辑,自动生成并通过调用 DBC 接口执行对应的 SQL。而对于 ibatis 来说, 它比较注重于 POJO 与 SOL 间的映射关系,换而言之,就是说在运行期间,Ibatis 不 会自动生成、执行 SQL。它需要程序员对具体的 SQL 进行编程,接着将 SQL 所需的参 数与返回的结果字段利用映射配置文件映射到制定的 POJO。 “全自动”的 ORM 机制(如 Hibernate)与“半自动”的 ORM 机制(如 ibatis) 当对象是纯粹的 Java 时,于业务逻辑实现人员来说,它们二者是基本一致的。只有 在进行具体的数据操作时,“全自动”的 ORM 会自动生成、执行 SQL 语句,而“半自 动”的 ORM 则需要对具体的 SQL 语句进行编写。相对于“全自动”的 ORM 机制来说, ibatis 这种“半自动”的 ORM 机制,是“全自动”ORM 机制的一种有利补充,它通过 在开发 SQL 工作量与数据库移植性上的让步,扩大了系统设计的自由空间。它的出现-6- 邵阳学院毕业设计(论文)具有非常重要的意义。 (4)spring spring 是由我们平时常使用的 JavaBean 构成的一个轻量级容器,它不同于 EJB 容器,其核心思想是 IoC 与 AOP,所以 spring 不仅易于编写,并且能够不用依赖容 器就进行单元测试。 此外,Spring 支持所有的 Java Bean 组件与声明式事务的管理,因此,如果使 用 spring, 它将负责对 Java Bean 组件进行初始化及管理, 那么我们只需将 Java Bean 组件进行编写、“装配”即可。这个方式最大的优势在于松散的组件耦合,让我们无 需自己动手便可实现 singleton 模式。1.5.2 系统的主要架构及开发模式 系统使用的架构是系统建设的关键所在, 传统的 c/s 架构现已不能满足类似网上 购物这样基于 web 并具有大量用户访问和操作系统的需要, 因此以浏览器架构为基础 的 b/s 架构成为了当前网络系统应用的主要架构, 它利用服务器端对大批的数据工作 进行处理,客户端只需使用普通的 IE 浏览器便能够访问系统。这样一来,访问系统 不仅变得方便快捷,并且更有利于对系统进行更新维护。除此之外,由于 j2ee 规范 的诞生,采用 java 语言使得该系统的开发更具规范,层次更为明了,在对复杂事物 的处理以及安全性方面也表现得更为出色。 而以 mvc 为基础的开发流程不但使得开发 过程更为清晰, 同时在完成一些复杂的逻辑实现上也更为简便,从而减少了开发的成 本与周期。 在 B/S 体系架构系统中, 我们只需配备少量的客户端软件在客户机上即可。因为 该架构减轻了客户机的原有工作, 利用服务器来担负起客户机所减轻部分的工作, 如: 访问数据库与执行应用程序等。至于剩下数据的请求与加工,结果的返回,动态网页 的生成等工作则是依靠 webserver 来完成的。换句话来说,如果将二层的 C/S 架构中 的事务处理逻辑模块从客户机的任务里分离出来得到的就是 B/S 体系架构。Browse 浏览 器 Web 服务器 数据库图 3.1 B/S 三层架构示意图B/S 三层体系架构如图 3.1 所示。它通过 web 服务器建立起独立的一层来负责其 任务,将负荷分配给了 web 服务器,以减轻客户机的压力。-7- 邵阳学院毕业设计(论文)B/S 体系架构不但能满足不断提高的性能要求,并且还将客户机从沉重的负担中 解脱了出来, 也使技术维护人员在繁重的维护升级工作中得到了解放,技术维护人员 不再需要为了维护程序而在在每个客户机之间奔波忙碌, 他们可以把主要精力用在功 能服务器的程序更新工作上, 因为功能服务器帮助客户机分担了事务处理逻辑部分的 功能,使客户机变得“苗条”起来。并且这种三层架构层与层之间是互相独立的,改 变任何一层都不会对其它层的功能造成影响。 ASP,CGI 是传统的基于 web 的应用系统, 像这类系统, 开发者通常会将数据逻辑、 展示逻辑与业务逻辑等混杂起来,将后台数据库的访问、操作,以及业务的流程与页 面的表示都放在同一个界面中表示。这样一来编写的程序,不仅不利于编辑人员设计 交互页面, 当程序员需要对业务代码调试时也会十分麻烦。并且这样的系统完全无扩 展性可言,一旦我们要扩展现有的业务,通常情况下只能重新进行编写,因为系统无 法借助现有的资源与应用, 所以使用这样的系统导致了投资的大量增加,系统上线时 间的延长,在市场竞争中失去了优势。 而本文所设计的网上购物系统,使用了通行的 MVC 模式来构造应用,有效地解决 了上述的所有问题。在我们的应用集成网络中, MVC 的开发模型将通过企业级高端 J2EE 应用服务器实现。它的逻辑图如图 3.2 所示:图 3.2 应用服务器之上采用 MVC 开发的逻辑示意图使用这个方案,我们能够快速地完成整个业务。其优点与特性如下: (1)模型(Model)层:采用 javabean 实现,具体的业务封装 service 层中,具 有高性能、可重用、安全可靠等优势。 (2)视图(View)层:该层由 JSP 构成,它的特点在于可以真实地展现与客户交 互的界面,可以嵌套动态数据并展示动态页面,同时还具有描绘功能,能够依据不同 客户的要求来展示不同风格的界面,方便地个性化定制客户端。-8- 邵阳学院毕业设计(论文)(3)控制器(Controller)层:用于最大限度地分离视图层与模型层,同时也这 两层的连接纽带,具有非常重要的地位。它一般是由是 struts2 实现的,它的优点在 于业务的调用和流程的处理。 建立这种模型,可以使该应用系统性能更为优越,且可扩展性更好。通过控制器 来描述调用关系,同时分离业务组件与展示页面,不但能够提高工作效率,而且能够 增强系统的扩充能力, 使系统能够以最快的速度扩展业务,满足各种用户在不同阶段 各式各样的业务需求。-9- 邵阳学院毕业设计(论文)2 系统分析2.1 网上购物系统概述在平台的开发设计中, 系统分析是一个不可或缺的环节。为了使系统的设计能够 更好、更完善,我们首先要进行研究和学习,然后基于对系统的调查研究之上,再细 致地分析新系统的功能,从而开发设计出一个完整的新系统。 本购物系统分为前台管理系统与后台管理系统,前台管理系统具有会员注册及登录、产品分类、产品展示、产品信息检索、购物车、个人中心、新闻动态等功能,是一个友好的操作界面, 提供给用户进行商品的查询与浏览; 后台管理系统则是供管理员使用的, 它具有用户管理、商品信息、订单管理、销量信息、建议管理、新闻管理等功能,使管理员摆 脱了传统繁杂的手工操作,大大提升了工作效率。2.2 网上购物系统的可行性分析丰富多彩的网络世界,日益剧增的网络人口,飞速发展的计算机技术,这些都让 电子商务在网上掀起了一股热潮。我们相信,在不久的将来,客户将能够在网络世界 中得到所有他们在现实世界中得到的全部商品与服务。 为了确定该系统开发的项目是否值得研究且能够实现,我们需要进行可行性研 究, 同时通过可行性研究还可以极大得简化系统分析和系统设计的过程,所以这项研 究是非常重要且必要的。 由系统的设计目标与对市场的调研可得到经济可行性、技术 可行性、运行可行性和法律可行性四项可行性分析: (1)经济可行性:由于该系统设计只是作为本人的毕业设计,在设计能力、设计 资金及设计时间上有所局限,所以其功能并未完善,暂时无什么经济效益可言。 (2)技术可行性:该系统设计采用的是 spring+struts2+ibatis 技术,该技术现 已较为成熟,而且本人对该技术有一定掌握,而且网上这块技术的资料也是比较多。 (3)运行可行性:该系统在 JVM(即 JAVA 虚拟机和 Tomcat 环境)下,正确连接 至数据库后能够正常运行。 (4)法律可行性:该系统为自主开发的毕业设计,与商业无关,不具有侵权行为, 所以具备法律可行性。 本文所开发设计的网上购物平台系统应用了 Web 技术与互联网广泛应用技术, 实- 10 - 邵阳学院毕业设计(论文)现了资源共享,达到了过去只有在现实商场中购物才能达到的效果,交互性较好,克 服了购物的局限性,减短了购物的时间,提高了人们购物的效率。该系统成为了一个 网络化、规范化、信息化、系统化的交易平台,将繁琐的购物活动变得简单易行。 经过以上可行性分析,综合考虑,确定了开发该平台的可行性。为了让该平台更具实用性与适应性,在对现有的平台内容进行充分了解与几个月的调查研究后,经过指导老师的耐心教 导,决定开发本系统平台。2.3 网上购物系统需求分析2.3.1 目标 每个网站都具有它自己的设计规则,该平台也不例外。它的主要设计规则是简单 性、针对性与实用性。简单性对于一个网站而言,是十分重要的。何谓简单性?就是 在能够实现该平台设计功能的基础上,尽可能使平台的操作简单明了。针对性则是由 于该平台属于网上购物系统与后台管理的定向开发设计, 因此要求该平台具有突出专 业性及很强的针对性。 而实用性说的是该平台可以实现电子商品的展示及管理员对基 本信息的管理,所以具有良好的实用性。因此,我们针对不同用户有不同的功能: (1) 普通用户: 可以通过前台进行页面的浏览, 产品的搜索以及产品信息的查看。 (2) 注册用户: 除了拥有普通用户所具备的权利外, 还拥有登陆注册、 购买商品、 使用购物车和提交订单的权利。同时,注册用户还可以向商家提出意见或建议。 (3)管理员:通过后台管理系统可以对用户信息、商品信息、订单信息、销量信 息、建议信息及新闻信息等进行管理。 该网上购物系统除了需要实现上述目标功能外, 还需要重点实现的功能有: 分页、 易淘、购物车、批量删除、图片上传、过滤处理及最近浏览等。 2.3.2 具体需求 (1)前台主要有: ① ② ③ 用户注册登录:用于实现用户的注册及登录。 产品展示: 用于展示产品的详细信息, 使用户能够更加全面具体地了解产品。 产品检索:用户可以根据自身需要,输入关键词对所需产品进行查询,节省用户时间,提高购买效率。 ④ 最近浏览:显示当前用户最近的浏览记录,方便用户对之前浏览过的产品再次进行查看。- 11 - 邵阳学院毕业设计(论文)⑤新闻动态:用于展示最新的动态信息,比如新品首发、优惠活动等信息,吸引用户查看购买。 ⑥ ⑦ 留言板:用户可在此进行留言。 购物车:与商场的购物车类似,用于实现用户对商品的暂时存放,方便用户进行选购结算。 (2)后台主要有: ① ② ③ ④ ⑤ 用户管理:通过该模块可以对用户信息进行增删改查操作。 商品管理:通过该模块可以对产品进行增删改查操作。 订单管理:通过该模块可以对订单进行增删改查操作。 留言板:通过该模块可以对留言板进行增删改查操作。 新闻管理:通过该模块可以对新闻进行增删改查操作。- 12 - 邵阳学院毕业设计(论文)3 系统概要设计3.1 项目规划根据我们的调查研究可知,该平台设计需要完成下列几项功能,具体如下所示: (1)普通用户:搜索、浏览产品。 (2)注册用户:搜索、购买、浏览产品,此外还可以给商家聊天、留言、提出意 见或建议。 (3)管理员:管理用户和商品信息,具有增删改查等权限,同时还可以上传和下 载商品图片。 需要重点实现的功能有批量删除产品或用户信息, 图片的上传和下载, 过滤处理, 购物车,分页,易淘等。3.2 系统结构图网上购物系统是一个典型 web 系统,主要分为前台和后台两个部分,它们相应的 子模块如下:图 3.1 前台模块前台模块主要具有:登陆注册、产品展示、查询、购物车、新闻等子模块。- 13 - 邵阳学院毕业设计(论文)图 3.2 前台模块后天模块主要具有:用户管理、商品信息、订单管理、新闻管理等子模块。3.3 系统流程分析3.3.1 前台购物流程 具体流程图如下图:图 3.3 前台购物流程图用户首先对商品进行浏览,选择自己所心仪的商品,然后订购商品。需要订购商 品的用户会出现三种情况,一是未注册用户,二是已登录注册用户,三是未登录注册 用户,这时系统就会对此做出判断,对于未注册用户,那么系统会先要求用户进行注 册,对于为登录注册用户,那么系统会先要求用户进行登录,最后才会像已登录注册 用户那样去到购物车,再到收银台,最后提交订单结账。 3.3.1 后台购物流程 具体流程图如下图:- 14 - 邵阳学院毕业设计(论文)图 3.4 前台购物流程图管理员通过管理员站好在前台登陆,系统根据账号的权限级别,自动跳转到后台 管理系统,然后管理员可以根据自己需要进行用户管理、产品信息、订单管理、销量 信息、新闻管理和建议管理等操作。- 15 - 邵阳学院毕业设计(论文)4 系统数据库设计4.1 数据库设计的重要性数据库是数据库应用程序的重要组成部分。 一个设计结构合理的数据库对于应用 程序的开发效率和程序的性能都是非常重要的。 良好的数据库设计对于一个高性能的应用程序非常重要, 就像一个空气动力装置 对于一辆赛车的重要性一样。 如果一辆汽车没有平滑的曲线, 将会产生阻力从而变慢。 关系没有经过优化, 数据库无法尽可能高效地运行。应该把数据库的关系和性能看作 是规范化的一部分。 除了性能以外的问题,就是维护的问题了,数据库应该易于维护。这包括只存储 数量有限的(如果有的话)重复性数据。如果有很多的重复性数据,并且这些数据的 一个实例发生一次改变(例如,一个名字的改变),这个改变必须对所有的其他的数 据都进行。为了避免重复,并且增强维护数据的能力,我们可以创建可能的值的一个 表并使用一个键来引用该值。在这种方式中,如果值改变了名字,这个改变只在主表 中发生一次,所有的其他表的引用都保持不变。4.2 数据库设计规范4.2.1 数据库设计三大范式 数据库的设计范式是数据库设计所需要满足的规范, 数据库的规范化是优化表的 结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁。实践中,通常把 一个数据库分成两个或多个表并定义表之间的关系以做到数据隔离,添加、删除和修 改某个字段只需要在一个表中进行, 接着可以通过定义的关系传递到数据库中剩余的 表中(和分层思想的意义所在很相似)。这样我们可以消除很多错误或垃圾数据出现 的机会并减轻更新信息所必要的工作量。 目前,主要有六种范式:第一范式、第二范式、第三范式、BC 范式、第四范式 和第五范式。满足最低要求的叫第一范式,简称 1NF。在第一范式基础上进一步满足 一些要求的为第二范式,简称 2NF。其余依此类推。 事物往往具有多面性,设计范式也会带来一定的麻烦:操作困难,因为需要联系 多个表才能得到所需要数据, 而且范式越高性能就会越差。所以使用多高的范式需要 权衡利弊,一般在项目中,使用到第三范式也就足够了,性能好而且方便管理数据。 (1)第一范式 1NF,定义:数据库表中的字段都是单一属性的,不可再分。简单 的说,每一个属性都是原子项,不可分割。1NF 是关系模式应具备的最起码的条件,- 16 - 邵阳学院毕业设计(论文)如果数据库设计不能满足第一范式,就不称为关系型数据库。也就是说,只要是关系 型数据库,就一定满足第一范式。 (2)第二范式 2NF, 定义:数据库表中不存在非关键字段对任一候选关键字段的 部分函数依赖,即符合第二范式。2NF 可以减少插入异常,删除异常和修改异常。简 单的说,一方面,第二范式肯定要满足第一范式,否则就没有必要谈第二范式。另一 方面, 当某张表中的非主键信息不是由整个主键函数来决定时,即存在依赖于该表中 不是主键的部分或者依赖于主键一部分的部分时,通常会违反 2NF。 (3)第三范式 3NF,定义:在第二范式的基础上,数据表中如果不存在非关键字 段对任一候选关键字段的传递函数依赖则符合 3NF。 4.2.2 数据库命名规则表 4.1 数据库命名规则 表 (Table) 字段(Column) 视图 (View) 存储过程 (Stored procedure) 触发器(Trigger) 索引(Index) tbl_ 无 viw_ prd_ trg_ idx_ 主键(Primary key) 外键(Foreign key) Check 约束(Check Constraint) Default 约束(Default Constraint) 用户定义数据类型 (User-defined data type) 用户定义函数 (User-defined function) pk_ fk_ ck_ df_ udt_ fun_4.3 数据库字典建设这个系统之前, 我们必须大致将系统中使用的数据分类,并且对这些数据进 行具体的结构设计, 这是数据库系统中的重中之重,它的好坏是保证关键数据在意外 情况下是否能抵御破坏的重要因素,所以对此,我们要求做到清晰明了,不会使其产 生结构上的逻辑混乱,能够适应系统各项功能的调用。 数据库的设计必须遵循一定的规则, 一个好滴数据库能够满足一些严格的闲置和 要求。尽可能得将各实体对应的表进行分离,一个表对应一个实体,明确什么属性是 哪些实体该具有的, 什么字段是与其相对应的, 以及各个实体间的联系是什么。 实体、 属性和联系是在概念设计时所需考虑的三要素,只有这三个要素设计好了,才能拥有 一个好的数据库。数据库中一共建立了 8 个表,表名如下:表 4.2 产品类型信息表 ( tbl_producttype) 序号 1 字段代码 tid 字段名称 编号 类型 number- 17 -长度 20约束名 pk_pid说明 主键,唯一标识,自增 邵阳学院毕业设计(论文)长(从 1 开始) 2 3 5 parentid tname remark 副编号 名字 备注 number varchar2 varchar2 20 100 500 非空 非空 备注表 4.3 产品信息表 ( tbl_product) 序号 1 字段代码 pid 字段名称 产品编号 类型 number 长度 20 约束名 pk_pid 长(从 1 开始) 外键,引用产品类型表 2 3 4 5 6 7 8 9 10 11 12 tid pname pvender pbrand pprice pstock pstate ppic pdescribe pbarcode remark 类型编号 名称 厂家 品牌 价格 库存 状态 图片路径 描述 条形码 备注 number varchar2 varchar2 varchar2 double number number varchar2 varchar2 varchar2 varchar2 20 100 100 500 20 10 2 3:团购价 4:普通 500 500 15 500 非空 描述产品信息,非空 非空 备注 非空 非空 非空,1:热卖, 2: 特价, fk_tid 的 tid 列 非空 非空 说明 主键,唯一标识,自增表 4.4 用户信息表 ( tbl_users) 序号 1 2 3 4 5 6 字段代码 uuid utruename uname upwd unickname usex 字段名 用户编号 真实姓名 用户名 密码 昵称 性别 类型 number varchar2 varchar2 varchar2 varchar2 varchar2- 18 -长度 20 50 100 20 100 2约束名 pk_uid说明 主键,唯一标识自 增长(从 1 开始) 非空 非空 非空非空 邵阳学院毕业设计(论文)7 8 9 10ubirth ucode uaddress uphone出生日期 身份证号 地址 联系方式date varchar2 varchar2 varchar2 18 500 20非空 非空 非空 非空 非空,1: 普通用11uauthority权限number2户,2: 客服, 3:管 理员12 13uqq unumberegra绑定 QQ 积分varchar2 number varchar220 10 500非空l 14 remark 备注 备注表 4.5 订单明细信息表 ( tbl_orders_detail) 序号 1 字段代码 ooid 字段名 订单编号 类型 number 长度 20 约束名 pk_oid 说明 外键,引用订单表 的 oid 列 2 uuid 用户编号 number 20 fk_uid 外键,引用用户表 的 uid 列 3 4 5 6 7 8 9 odtotal odpreferential ostate pname tname odnum 产品名 产品类型 数量 单价 总价 优惠 状态 varchar2 varchar2 number double double double number 100 100 10 20 20 5 2 1: 未付 款 ,2: 已付 款 ,3: 已 发货 , 4: 收货并确认 10 odpayment 付款方式 varchar2 10 1:货到付款,2: 网上支付 11 remark 备注 varchar2- 19 -非空 非空 非空 非空 非空500备注说明 邵阳学院毕业设计(论文)表 4.6 订单信息表 ( tbl_orders) 序号 1 字段代码 ooid 字段名 编号 类型 number 长度 20 约束名 pk_oid 说明 主键,唯一标识自 增长(从 1 开始) 2 3 4 uname otime ostate 用户名 订单时间 状态 varchar2 date number 2 100 fk_oid 外键 非空 1: 未付款 ,2: 已付 款 ,3: 已发货, 4: 收货并确认 5 6 onum remark 合计 备注 number varchar2 20 500 非空 备注说明表 4.7 新闻信息表 ( tbl_news) 序号 1 字段代码 nid 字段名 新闻编号 类型 number 长度 20 约束名 pk_nid 说明 主键,唯一标识自增 长(从 1 开始) 2 3 4 5 6 7 ntitle nsource nauthor ncontent ncreatetime remark 标题 来源 作者 内容 录入日期 备注 varchar2 varchar2 varchar2 varchar2 date varchar2 500 200 200 50 4000 非空 非空 非空 非空 非空 备注表 4.8 建议板信息表 ( tbl_advice ) 序号 1 字段代码 aid 字段名 编号 类型 number 长度 20 约束名 pk_aid 说明 主键,唯一标 识自增长(从 1 开始) 2 3 4 5 uname acontent acreatetime areplytime 建议用户名 建议内容 建议创建时间 建议回复时间 varchar2 varchar2 date date- 20 -50 1000非空 邵阳学院毕业设计(论文)6astate建议状态number21: 已回复, 2: 待回复7remark备注varchar2500表 4.9 公告信息表 ( tbl_announce) 序号 1 字段代码 aid 字段名 公告编号 类型 number 长度 20 约束名 pk_aid 说明 主键,唯一标识自增 长(从 1 开始) 2 3 4 5 atitle acontent acreatetime remark 标题 内容 录入日期 备注 varchar2 varchar2 date varchar2 500 200 1000 非空 非空 非空 备注- 21 - 邵阳学院毕业设计(论文)5 系统详细设计5.1 开发规范(1)所有页面均采用 UTF-8 编码,工程也采用 UTF-8 编码。 (2)在类或者方法上写上作者名 (3)Java 中类的命名: ① 类名:如果该类与某张表对应,则把表名的前缀去掉即该类名,并采用驼峰命名法则。例如:存在表 tbl_type,则与之对应的类名为 Type。 ② 类属性:如果该类与某张表对应,则该类的属性名与表格中的字段名一样,而且顺序也要一致,但一定要注意类型的,如 date,类属性选择是 utils 包中的。 (4)每个类和方法最后分别添加一个标记,格式://end 类名或//end 方法名 (5)如果一个控制语句无法在一个窗口同时出现,则采用以下方法注释: 例如:if(条件){ //beignOutIf if(条件){ //beignInnerIf 处理语句 } //endInnerIf } //endOutIf 再如:if(条件){ //beignIf while(条件){ //beginWhile 处理语句 } //endWhile } //endIf (6)类中的每个属性,采用当行注释,说明该属性的含义,必须在同一行 例如:pricvate S//姓名 (7)类与类之间,方法与方法之间,必须空一行 (8)类中的书写顺序: ① ② ③ ④ 属性 构造方法(注意:参数从上到下,一次递增,而且必须有无参构造方法) 其他方法 get/set 方法(9)每个类和方法前必须有文档注释,用于说明该类或方法的作用- 22 - 邵阳学院毕业设计(论文)(10)调试代码后面加上////////////////////////////////////////// ,方便 查找和删除调试代码。 (11)异常处理的输出代码,先用注释写明该处出现的异常,项目完成后再处理 这些代码。5.2 系统框架说明5.2.1 工程目录结构说明 目录结构说明具体见表:表 5.8 工程目录结构表 目录 EasyWeb src/main/java src/main/resources 作用 工程名 java 源代码文件 主要用于存放项目中资源, 比如配置文件。 通过 Maven2 执行 compile 命令以后,该目录中的所有文件及子目录中的文件,都会被系统复 制到 target/classes 目录下,以方便打包。 主要书写测试代码。 主要用于存放项目中测试资源,比如配置文件。通过 Maven2 执行 compile 命令以后, 该目录中的所有文件及子目录中的文件, 都会被 系统复制到 target/classes 目录下,以方便打包。 系统类库 maven 依赖类库 Src 目录包含 main(主要的工程源文件),test(测试文件),一 般包含该工程的页面文件、样式文件和图片等。 该目录主要是项目编译完成后的一个输出目录。 用于描述工程,主要通过相关配置描述项目所依赖的 jar 包和插件。src/test/java src/test/resourcesJRE System Library Maven Dependencies src target pom.xml5.2.2 功能页面结构 (1)前台功能页面,存放在 src/main/webapp/jsp/client 目录下,具体如下表:表 5.9 前台页面表 createCheckCode.jsp guestbook.jsp homePage.jsp index.jsp login.jsp news-view.jsp product-list.jsp user-order.jsp- 23 -product-view.jsp reg-result.jsp register.jsp shopping-result.jsp shopping.jsp submit-order.jsp user-info.jsp 邵阳学院毕业设计(论文)(2)后台管理页面,存放在 src/main/webapp/jsp/manage 目录下,具体如下表:表 5.10 后台页面表 guestbook.jsp manage-result.jsp news-modify.jsp order-details.jsp order.jsp product-add.jsp product-modify.jsp productClass-add.jsp productClass-modify.jsp user-add.jsp user-modify.jsp index.jsp news-add.jsp news.jsp order-modify.jsp proceed.jsp product-modify-details.jsp product.jsp productClass-modify-details.jsp productClass.jsp user-modify-details.jsp user.jsp5.3 系统功能模块的具体实现5.3.1 主要功能流程:主页面 index.jsp 。 用户登陆 注册 是否会员管理进入资 料 修 改搜 索 物 品选 购 物 品会 员 管 理商 品 管 理新 闻 管 理广 告 链 接退 出 返 回添加到购物车 退出 结帐付款 购物成功 填写订货单会 员 删 除商 品 添 加商 品 修 改新 闻 添 加新 闻 修 改广 告 设 置链 接 管 理图 5.1 主要功能模块流程图- 24 - 邵阳学院毕业设计(论文)5.3.2 前台模块 (1)注册模块 用户首先进入注册入口, 然后到达注册信息的页面, 该页面中存在用户名、 密码、 身份证、联系方式和 E-mail 等选项,此时系统就要对用户填写的各项信息判断,当 所有必选项不为空时进入对用户名是否有效的判断,如果无效则提示相应错误信息, 并无法提交表单,如果所有信息均合法有效,系统会提示用户注册成功,并将用户所 注册填写的信息加入会员表内,并自动登录跳转到主页面。注册入口 填写信息 信息合法?是否注册成功图 5.2 注册模块流程图(2)登录模块 用户注册成功之后,即可通过登录入口进入登录页面,先输入账号和密码,系统 将匹配数据中用户表的信息, 如果匹配不上, 则回到登录页面, 提示相关错误, 否则, 系统将会根据该账号的权限跳转到前台或者后台。图 5.2 登录模块流程图(3)产品分类模块 产品分类主要显示在前台页面的左边,作为网上购物系统的导航。它主要大分类- 25 - 邵阳学院毕业设计(论文)与子分类构成, 首先通过产品的基本属性或用途将产品进行大类的划分,然后在产品 的大分类下, 根据产品的不同特征再划分子分类。用户可根据自己所需找到产品的所 属分类,当点击相应的产品分类时,便可查询到相应的产品信息,方便客户找到自己 心仪的产品。(4)产品展示模块主要以列表的方式展示产品的图片,名称和价格等基本信息,通过这种方式,不 仅使展示的内容更为丰富, 也让用户对展示产品有了一个形象生动的初步认知,方便 用户对产品的选购。 同时, 当用户具体点击某个产品时, 便会显示该产品的详细信息, 以供用户作进一步查看、比较、选购。 (5)搜索模块 商品的搜索功能有助于用户快速方便地查询自己所需的商品, 节约用户的选购时 间,提高了选购效率。用户开始搜索时,只需要在搜索框输入相关条件就可以得到相 应的搜索结果,系统采取模糊查询,因此会查询出包含该查询条件其他相关产品。根 据搜索的结果,用户可以选择查看商品,继续搜索,或者将商品加入购物车,提交订 单支付。搜索框 是输入内容 搜索结果查看商品 否 续搜索 图 5.3 搜索模块流程图购物 车 下订单(6)购物车模块 用户在选中合适的产品之后,点击产品下方的“加入购物车”,系统会先判断当 前用户是否已经拥有购物车, 否则就会为当前用户创建一个购物车,并保存在当前用 户的 session 中,而不是保存到数据库中,之后用户可以继续购物,如果产品相同, 则购物车中相应的产品的数量则增加相应购物的数量。在购物车中,用户还可以删除 不需要的产品,或者调整购物产品的数量当用户下订单之后,则会生成订单,并保存 到数据库中。- 26 - 邵阳学院毕业设计(论文)购物车查看商品否 满意? 是 调整商品下订单图 5.4 购物车模块流程图(7)最近浏览模块 该功能主要是保存用户最近的浏览记录,方便更好了解上次或最近的浏览的产 品, 主要使用 cookies 保存在客户端, 用户用再次登录本网站时, 就去读取该 cookies 的内容以获取最近的浏览记录。 (8)新闻模块 用于展示最新的网站动态信息,比如新品首发、优惠活动等信息,吸引用户查看 购买。管理员可以通过后台创建新闻,创建完成以后,该新闻就会在前台页面的右上 角以向上循环滚动的方式显示, 用户在点击自己感兴趣的新闻标题之后,就可以查看 该新闻的详细内容。 (9)留言模块 用户可以商家留言,以供商家不断改进服务或者不足。 5.3.3 后台模块 (1)用户管理模块 管理员通过该模块查询用户,创建用户(普通用户、客服、管理员),修改和删 除用户,因此该模块具有新增、查询、修改和删除功能。- 27 - 邵阳学院毕业设计(论文)用户管理 查询用户新增用户修改删除 否 满意? 是 返回 图 5.5 用户管理模块流程图(2)商品信息模块 管理员可以在商品管理模块中进行商品信息的查询、修改、添加以及删除,在这 个模块中,管理员不仅能够看到商品的详细信息,相对于普通用户而言,还能够看到 关于产品一些其他信息。商品管理添加商品查询商品修改删除 否 满意? 是 返回图 5.6 商品信息模块流程图(3)订单管理模块 管理员可以通过该模块,了解订单的详情,或者修改、删除订单,因此该模 块具有查询、修改和删除功能。同时该模块下细分了全部订单、付款订单、发货 订单和收货订单。- 28 - 邵阳学院毕业设计(论文)图 5.7 订单管理流程图(4)销量信息模块 管理员可以通过该模块,了解各种产品的销量详情,因此该模块只有查询功能。 (5)留言管理模块 管理员可以通过该模块, 查看所有用户的在任何时候的留言,或者删除一些不和 谐的留言,因此该模块具有查询和删除功能。 (6)新闻管理模块 管理员可以通过该模块,新增新闻,或者查看以及删除新闻,一次该模块具有新 增、修改、查询和删除功能。新闻管理添加新闻查询新闻修改删除 否 满意否 是 返回 图 5.8 新闻管理模块流程图- 29 - 邵阳学院毕业设计(论文)6 系统测试及难点分析6.1 系统测试6.1.1 系统关键部分测试分析系统开发完成以后,对已完成的模块功能进行了单元测试,是非常必要的,因为 这样可以保证系统可用性和强大性。 而 Dao 层是一个项目中最底层也是最关键和重要的一层, 它的不稳定将会导致整 个程序不稳定或者崩溃, 所以我们通过单元测试来检测各个 Dao 层的方法的稳定性和 强大性。 除了 Dao,我们还应该关注页面对各种数据验证完整性和强大性,这样才可以确 保正确的数据被程序所接受,并保存到数据库中,以确保数据的完整性。 最重要的是,我们一定要对各个业务逻辑进行全方位测试,以确保业务正确性和 完整性。只有这样一个程序才是正确的程序,因为业务中某一个环节出错了,都会导 致整个业务出问题,带来不必要的问题。 6.1.2 测试计划 (1)通过浏览器测试。 (2)在设计一个测试方案时,不仅要确定的输入正确数据,而且还要从系统功能 的角度出发预期的测试结果。只有将运行结果与预期测试结果进行对比,才可以发现 有无错误。 (3)不仅要检验程序是否完成了该完成的任务,还要检验程序是否同时完成了不 该做的任务。 (4)在测试完之后,应该保存测试用例,因为它是文档的一个重要组成部分。 6.1.3 单元测试工具 JUnit ,是一个开源的 Java 单元测试框架,是 Java 的标准单元测试库,是非常 重要第三方 Java 库。 它由 Kent Beck 和 Erich Gamma 建立,逐渐成为源于 Kent Beck 的 sUnit 的 xUnit 家族中最为成功的一个。 JUnit 有它自己的 JUnit 扩展生态圈。 多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。 JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。JUnit 测试是程序员测试,即所谓白盒测试,因为程序员知 道被测试的软件如何(How)完成功能和完成什么样(What)的功能。JUnit 是一套 框架,继承 TestCase 类,就可以用 JUnit 进行自动测试了。- 30 - 邵阳学院毕业设计(论文)JUnit 作为一个软件测试的工具,JUnit 可以不破坏 java 原代码,使用方便,添 加快捷,代码量少,可视化的测试。 JUnit 单元测试步骤: (1)导入包 JUnit 测试包:写一个类扩展(继承)TestCase; (2)在需要测试的方法名前加 test 生成新的测试方法; (3)运行测试,用断言(assert***)的方法测试成功(显示绿色)或失败(显示 红色),或者自己判断结果正确与否。 在开发的时候使用 JUnit 写一些适当的测试也是有必要的, 因为一般我们也是需 要编写测试的代码的,可能原来不是使用的 JUnit,如果使用 JUnit,而且针对接口 (方法)编写测试代码会减少以后的维护工作,例如以后对方法内部的修改(这个就 是相当于重构的工作了)。另外就是因为 JUnit 有断言功能,如果测试结果不通过 会告诉我们哪个测试不通过, 为什么,而如果是像以前的一般做法是写一些测试代码 看其输出结果,然后再由自己来判断结果是否 正确,使用 JUnit 的好处就是这个结 果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以 了,在一般情况下会大大提高效率。 6.1.4 测试分析总结及说明 在系统测试的过程中,通过组装测试和模块测试,成功地排除了系统中大部分错 误。 不过排除系统中的所有错误是不太可能的,因此系统中可能还存在一些不易发现 的错误或者不足, 需要在系统的使用过程中进一步的改正和完善。比如数据库的加密 和备份以及优化都是需要进一步完善的;另一方面本系统没有报表功能。 6.1.5 系统的性能分析 网上购物系统采用是 B/S 架构,这个性质决定了,服务器端工作负荷相对客户端 是大很多的。因此服务器端的整体硬件配置要高些,操作系统要稳定,并有足够的内 存供使用。 我们都知道 windows 的用户量很庞大, 但这不代表它就是最好的操作系统。 恰恰相反,虽然 windows 的操作简单,服务多,但它的漏洞还是比较多的,特别 是相对于 unix 操作系统。 因此如果条件允许,最好将系统安装在 unix 操作系统或其 它相对稳定的操作系统下,提高系统稳定性和性能。 一个系统中最要的还是数据,但是随着时间推移,数据的不断增多,必然会产生 冗余,从而导致系统读取数据的效率降低,因此建议管理员压迫定期备份数据,并清 理冗余数据,以保证系统的能够正常高效的运行。- 31 - 邵阳学院毕业设计(论文)6.2 系统运行结果6.2.1 前台主页面 前台主页面主要显示了产品分类、新闻动态、今日特价产品和热卖产品等信息, 让用户对展示产品有了一个形象生动的初步认知,方便用户对产品的选购。图 6.1 前台主页面示意图6.2.2 用户登陆模块 用户登录模块,是保护网站用户的第一个防线,它能阻止其他用户的非法登录, 后台数据库的安全性因而也由用户登录模块进行保护。如果用户需要进行购买行为, 则必须先通过身份验证,输入用户名和密码。密码校对正确后开始进行购物,否则, 系统将不支持用户进行购买行为。如若用户不进入身份验证界面,则只能浏览或者搜 索商品,网站系统将不支持用户购买。当用户出现购买操作,系统将自动识别该用户 是否登录,假如非登录用户,系统将会自动弹出身份验证界面,用户则必须先通过身 份验证才能购买所需产品。如果用户需要注册,那么必须填写带星号的选项,否则注 册失败。- 32 - 邵阳学院毕业设计(论文)图 6.2 注册页面示意图用户在注册之后,即可登录,需要输入用户名和登陆密码以及验证码,其中验证 码主要用于防止用户恶意地不断登陆,只有三者同时满足,才登陆成功,否则提示相 关错误信息。图 6.3 登录示意图- 33 - 邵阳学院毕业设计(论文)如果用户需要更改自己的额资料,则可以在登陆过后修改,主页面上会显示自己 的用户名,单击用户名以后将出现资料修改界面,选择需要修改的选项卡,审核正确 后点击确认,系统将会保存更改后的资料。图 6.4 用户资料修改示意图6.2.3 商品信息和新闻的实现 商品信息主要是为了让顾客对所需要的信息就行了解,如产品价格,库存量以及 运费等等。图 6.5 商品信息示意图6.2.4 购物车模块的实现 当用户登陆之后,若找到了希望购买的产品,在点击产品下方的加入购物车,该- 34 - 邵阳学院毕业设计(论文)产品会自动加入购物车, 用户可以不断重复以上操作, 直至选购自己所需的产品为止, 此时用户可以点击页面上购物车,即可查看已选购的产品,并提交订单。 若用户需要更改已选的物品,可以在界面上直接操作,删除物品或者增减物品的 数量,确定之后,系统会自动核算所选物品的价格。图 6.6 购物车示意图用户如果想看自己的订单详情,可以在提交订单以后,单击“个人中心”,然后 进入“我的订单”进行查看。图 6.7 订货成功示意图6.2.5 新闻动态 新闻在首页采用向上滚动方式显示,以引起用户的注意,点击相应的标题,即可 查看相应内容。图 6.8 新闻信息示意图- 35 - 邵阳学院毕业设计(论文)6.2.6 后台主页面 网上购物系统有很多功能, 不仅仅局限于为客户提供浏览和购物等前台服务,最 重要的一点,就是用户的管理功能,网站必须保证用户能对自身进行各种信息操作, 如查看自己购物车里的物品,增减或修改商品信息,查看会员记录,浏览网站新闻等 等,这些对用户来说都非常重要,也在所有功能里占据很重要的地位。 管理员可以在主页面点击“登录”输入正确的帐号,密码之后,系统会判断该账 号是否具有管理员权限,若有则进入后台,否则进入主页面。图 6.9 后台登录示意图6.2.7 用户管理页面 管理员可以在这个页面对用户进行增删改查等操作。图 6.10 用户管理界面- 36 - 邵阳学院毕业设计(论文)图 6.11 用户新增界面图 6.12 用户删除界面- 37 - 邵阳学院毕业设计(论文)6.2.8 产品信息页面 如果管理员需要对产品进行管理,则可在此页面进行增减、删除、修改和审查等 一系列操作。图 6.13 产品分类界面图 6.14 产品分类新增界面图 6.15 产品分类删除界面- 38 - 邵阳学院毕业设计(论文)图 6.17 商品管理界面图 6.18 商品管理新增界面- 39 - 邵阳学院毕业设计(论文)图 6.19 商品管理删除界面6.2.8 订单页面 管理员可以在这个页面对订单进行删改查等操作。图 6.20 订单管理界面图 6.21 订单详情界面- 40 - 邵阳学院毕业设计(论文)图 6.22 订单删除界面6.2.9 新闻管理页面 管理员如果需要对新闻进行管理,则可以在此页面进行增减、删除、修改和审查 等一系列操作。图 6.23 新闻管理界面6.3 系统中所存在的问题及解决方案6.3.1 系统的整体设计和规划中的问题 由于网站使用的是 B/S 的系统,这就意味着网页的工作负担量就会非常大,不仅 要对服务端后台进行数据写入和修改,也包括服务端对客户端请求的响应,同时还要 把数据返回到客户端页面,显然,这么多的工作如果靠几个网页来完成,则显得难度- 41 - 邵阳学院毕业设计(论文)过大,目前来说技术还达不到,但是过多的网页又会对其结构有不良影响,因为其开 发过程就显得异常艰难。 为了是这个问题得到解决, 我才用了模块化思想,其在现代软件开发过程中具有 举足轻重的地位。模块化思想要先分解系统功能,将其逐个分解,主要为前台和后台 两部分。前台的页面分为以下几大块:购物车及订单,显示购物车里的商品以及已购 买的订单信息;新闻,对各个商家的促销活动进行了解;搜索功能,对感兴趣的商品 进行搜索查看;主页面及产品信息展示,浏览所有分类产品的大致信息,一共四大区 域。后台则主要有新闻信息管理,自主选择是否接受促销提示;会员信息管理,修改 和完善用户的资料;商品信息管理,对所选商品进行增减、删除或修改,一共三个部 分。重要的是,每一个部分的组成都是由很多个小页面连接起来,如此,网页的数量 虽然只多不少,但它的结构就不那么混乱,提高了开发效率。 6.3.2 开发功能模块所遇到的难点 在整个系统的设计过程中,我遇到了许多问题。如大家所见,这是一套相当完整 的系统,而对一个完整的系统进行更改和设计,本身就是很艰难的任务,这不仅仅体 现在语法问题上,更多的是,我觉得我的思维方式也要有所改变。例如:该系统的购 物车模块。这个模块设计难度较大,并且由于过程较为复杂,导致它的一些逻辑处理 就难以应用代码进行实现。 在对其他的电子商务网站进行了大量的参考以后, 我又用心研究了他们的购物流 程, 最终对购物车模块的设计得出了自己的理解。用户在确认购买并且页面已跳转至 结算时, 系统才会对库存自动进行盘点,如果用户所选商品的库存大于用户需要购买 的数量,则用户可以购买,此时系统会自动结算商品的价格,并给客户下发一张订货 单,用户付款之后系统会产生一个订货单号,此时订单成交。如果库存少于用户所需 的数量,则需要用户更改数量或者更换商品,否则,购买失败。 商品信息写入购物车的页面,而不会写入数据库中。如果用户不填写数量并点击 确认,则系统将会默认添加一件产品到购物车中。因此,用户在没有选择数量的时候 也可以进行购物, 这是一种非常友善的行为。 如此, 数据库中的数据得到有效的保护, 不会轻易发生混乱,用户也能轻松体验购物成果 如果用户确认了其所购买的商品信息并点击计算后, 系统将会自动分析商品的库 存是否能匹配用户所要购买的数量。 6.3.3 系统中存在的问题及拟定的解决方法- 42 - 邵阳学院毕业设计(论文)(1)权限设计不完善, 当前系统仅仅是在 USERS 表用 UAUTHORITY 字段表示该用户 所具有的角色(管理员和普通用户),而不能设置相应的细粒度的权限,也不能动态 变更权限。合理的做法是,再建立一张角色表和权限表,这样就可以更好地动态管理 用户权限。 (2)地址数量不合理,目前系统一个用户只能拥有一个地址,每次提交订单之后 默认使用该地址, 而实际中每个用户可以有多个地址,提交订单的时候根据自己的需 要选择合适地址。因此,合理的做法是,建立一张地址表,用户表再引用这张表,就 可以解决以上问题了。 (3)密码未加密,数据库中保存的是明文密码,这样容易导致密码泄露,给用户 带来不必要的损失。最好的做法是,在保存密码时,先通过 MD5 或其它方式加密,再 把加密之后的值保存到数据库中。- 43 - 邵阳学院毕业设计(论文)- 44 - 邵阳学院毕业设计(论文)参考文献[1]《Java 程序设计》(新加坡)潘祥春 著. 清华大学出版社,]《数据库系统概论(第 4 版)》王珊;萨师煊 著. 高等教育出版社,]《Oracle 10g 数据库基础教程(第 2 版)》孙风栋 著. 电子工业出版社,]《Servlet/JSP 深入详解》孙鑫 著. 电子工业出版社.2008.08. [5]《Spring 实战(第 3 版)》(美)沃尔斯 著|译者:耿渊;张卫滨. 人民邮电出版社, ]《研磨 Struts2》 陈臣;王斌;孙琳 等著. 清华大学出版社, ]《iBATIS 实战》 (加)Clinton BBrandon GLarry Meadors 著. 人民邮电出版社 ,2008 [8]《精通 Struts:基于 MVC 的 Java Web 设计与开发》 孙卫琴 著. 电子工业出版社,]《Java Web 技术整合应用与项目实战》 张志锋;朱颢东 著. 清华大学出版社, ]曾云飞 .《MyEclipse 应用开发详解》[M]. 东北大学出版社 2005 [11]王毅,周峰,孙更新. 《J2EE 经典案例设计与实现》[M].电子工业出版社 [12]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》[M].北京:电子工业出版,2004- 45 - 邵阳学院毕业设计(论文)致谢转眼四年, 时间在我们不曾意识到的时候悄悄流逝, 不久我们都将毕业。 四年里, 我没有让我的白白荒废,我努力学习,也努力实践,这让我学到了更多的知识,得到 了许多别人的肯定,同时,也明白了这个年纪该懂得的道理。 这次毕业论文不仅是对四年大学所学的一个总结,也是对未来工作的一个展望, 能够顺利完成论文离不开大家的帮助和支持,在此我由衷地向大家表示真诚的感谢。 首先感谢敬爱的指导老师――陈智老师,他是一个严谨认真,和蔼可亲的老师, 不仅专业知识精湛,工作还非常负责。从开始准备论文到现在,他给我提出了许多宝 贵意见,每当我遇到了不懂的问题,他总是十分耐心地向我解答,激励我前进,没有 他的悉心教导与帮助,我的论文不会顺利的完成。 其次感谢我亲爱的朋友们,无论是在学习中,还是生活中大家都给予了我许多帮 助。生病时有大家的关心,失意时有大家的安慰,开心快乐可以与大家分享,伤心难 过可以有人倾述。这次的论文也是在大家的互相帮助、鼓励下顺利完成的。 这次课题虽难, 但是我学到的东西却远比我原本想得多太多, 越难才越有挑战吧, 所以我不畏惧,所以我甘之如饴。或许这就是我收获这么多的原因,未来那么长,只 要不畏艰险,那何愁没有成绩。我想这就是困难之于我们的意义。 最后感谢信息工程系的所有老师,这四年来你们辛苦了。不仅给我传授了专业的 理论知识和实践经验, 更让我明白了许多人生道理和生活态度,再次地衷心的感谢大 家。- 46 -
毕业设计-基于SSH网上商城的设计与实现_学习总结_总结...了基于 SSH 框架的网上商城购物系统的设计与实现。...首先在论文完成之际,我由衷的感谢我的指导老师 ...网上购物系统的设计与实现本科毕业设计(论文) - 网上购物系统的设计与实现 Design and Implementation of Internet Shopping System by...网上购物系统的设计与实现学士学位毕业论文 - 毕业设计(论文) 网上购物系统的设计与实现 院 别 计算机与通信工程学院 计算机科学与技术 专业名称 班级学号 学生姓名...XXXXXX 大学 毕业论文(设计) 题 目 基于 SSI 框架的电子商务信息平台的研究和构建 工商 学生姓名 指导教师 完成日期 学院 XXX XXX XXX 专业 08 级 2 班学号...SSH框架下基于JSP网上商城系统的设计与实现毕业论文 - SSH 框架下基于 JSP 网上商城系统的设计与实现 毕业论文 目录 1 引言......2 第一章 系统实现原理 ......基于SSI框架的网上购物系... 8人阅读 66页 ¥25.00
毕业设计-基于SSI框架的... 665人阅读 30页 5下载券
毕业设计...基于SSH框架的自由交易系统的设计与实现毕业论文 - 东海科学技术学院毕业论文 基于 SSH 框架的自由交易系统的设计与实现 摘要 在互联网快速发展的时代里,电商已经不...网上购物系统毕业论文_互联网_IT/计算机_专业资料。...毕业设计(论文)说明书 逻辑也可以从 Spring 框架...支持可重用的基于组 件的设计,使基于 Web 的应用...基于SSH框架的网上书店的设计与实现毕业论文_管理学_高等教育_教育专区。基于 ...购物车、订单生成等,后台管理系统则帮助用户对前台网站进 行日常管理和信息发布,...毕业设计(论文) 题目: 基于 Struts + Spring + Hibernate 的购物网站设计与...,以 Struts、Spring 和 Hibernate 框架为基础开发了一个轻量级的网上购物系统。...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 安全气囊什么时候弹出 的文章

 

随机推荐