基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文

上传人:沈*** 文档编号:42674372 上传时间:2021-11-27 格式:DOC 页数:39 大小:2.56MB
收藏 版权申诉 举报 下载
基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文_第1页
第1页 / 共39页
基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文_第2页
第2页 / 共39页
基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文_第3页
第3页 / 共39页
资源描述:

《基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文》由会员分享,可在线阅读,更多相关《基于J2EE框架的电子商务在线支付平台的设计与实现毕业论文(39页珍藏版)》请在装配图网上搜索。

1、 学号 200532580267 密级_ 武汉大学本科毕业论文武汉大学本科毕业论文 基于基于 J2EE 框架的电子商务在线支付平台框架的电子商务在线支付平台的设计与实现的设计与实现院(系)名 称:国际软件学院专 业 名 称 :软件工程学 生 姓 名 :张学程 指 导 教 师 :江聪世 廖广志 二九年五月IBACHELORS DEGREE THESIS OF WUHAN UNIVERSITYThe Design and Implementation of E-business Online Payment System Based on J2EECollege :International sc

2、hool of softwareSubject :Software EngineeringName :Xuecheng ZhangDirected by :Congshi Jiang Guangzhi LiaoMay 2009II郑郑 重重 声声 明明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名: 日期: 摘 要 伴随着电子商务的快速发展

3、,网上支付业务也逐步兴起。作为电子商务活动的重要环节,在线支付网上支付的参与,可以使电子商务由网上信息搜索和协议草签的阶段,转入实质性的交易阶段,形成完整的电子商务。通过对电子商务支付系统的研究,明确电子商务支付流程以及支付系统功能特点,提供系统的理论研究,设计并实现一个网上支付系统。关键字:电子商务;在线支付;设计;实现IABSTRACT Concomitant with rapid development of e-commerce,online payment transactions grow gradually. As a key link in e-business commerc

4、e,online payment makes transactions change from papery state to totally online trading. By studying from some online payment systems,we gain a clear idea about e-commercial payment stream and functional behaviours of payment system.So we can provide systemic knowledge about design and implementation

5、 of an online payment system.Key words:e-commerce;online payment;design;implementII目目 录录摘摘 要要 .I IABSTRACTABSTRACT .IIII第第 1 1 章章 绪论绪论 .1 11.1 研究背景.11.2 研究现状及发展趋势.11.2.1 研究现状 .11.2.2 发展趋势 .21.3 项目研究的目的和意义.21.3.1 研究目的 .21.3.2 研究意义 .21.4 论文的主要内容.31.5 本章小结.3第第 2 2 章章 开发技术及开发环境开发技术及开发环境 .4 42.1 开发技术.42.

6、1.1 J2EE .42.1.2 应用框架 .52.1.3 Struts,Spring,Hibernate .62.2 运行环境.92.3 本章小结.9第第 3 3 章章 系统设计系统设计 .10103.1 系统需求分析.103.1.1 系统用户特征 .103.1.2 系统依赖关系 .103.1.3 系统功能需求 .113.2 系统模块设计.133.2.1 系统结构描述 .133.2.2 面向客户子系统 .14III3.2.3 面向管理者子系统 .153.2.4 系统管理子系统 .163.3 本章小结.17第第 4 4 章章 数据库设计数据库设计 .18184.1 数据库需求分析.184.2

7、数据库详细设计.194.2.1 关系实体 .194.2.2 实体关系 .204.3 本章小结.21第第 5 5 章章 子系统实现与验证子系统实现与验证 .22225.1 系统实现.225.1.1 清单查询的实现 .225.1.2 导出 Excel 的实现 .235.1.3 分页功能的实现 .245.1.4 简单安全控制的实现 .255.2 系统验证.265.2.1 清单查询的验证 .265.2.2 导出到 Excel 的验证 .265.2.3 分页功能的验证 .275.2.4 简单安全控制的验证 .275.3 本章小结.28第第 6 6 章章 总结总结 .2929参考文献参考文献 .3030致

8、谢致谢 .3131附录附录 数据库表的设计说明数据库表的设计说明 .32320第第 1 章章 绪论绪论本章将介绍论文的研究背景,研究现状和发展趋势,论文研究的目的与意义以及论文主要内容的介绍。1.1 研究背景研究背景随着计算机、网络、信息技术的发展和日益融合,Internet 已进入我们生活的各个领域和各个环节,无论是机关、单位还是家庭、个人,都可以通过 Internet获取和共享资源信息。在 Internet 的广阔联系与传统信息技术系统的丰富资源相互结合的背景下,一种相互关联的动态商务活动应运而生-电子商务,这种基于Internet 的电子商务给传统的交易方式带来了一场革命。据统计截至 2

9、008 年底,中国电子商务市场交易额达到 24000 亿元1,是 2004 年交易额的 5 倍。电子商务市场发展如此迅猛,网络交易平台在满足顾客需求的设计上显得尤为重要。对于电子商务交易,解决网上支付是最关键问题之一。如果没有网上支付的参与,电子商务就停留在网上信息搜索和协议草签的阶段,无法进入实质性的交易阶段,因而不能形成完整的电子商务。目前我国消费者网上购物的主要付款方式还是货到付款或事先邮政汇款,这破坏了电子商务的完整性,而且造成很多不必要的麻烦。进行电子商务就是为了方便、提高效率、降低成本,一旦缺少了网上支付,电子商务的很多优势无法体现。此外,我们必须清醒认识到,网上支付的基础环境还有

10、许多的问题是值得我们关注和改善的:网上支付的安全,社会性、体系状况以及网上支付相关的法规等等,都是现在制约网上支付发展的重要因素。网上支付成了我国发展电子商务的瓶颈问题。1.2 研究现状及发展趋势研究现状及发展趋势1.2.1 研究现状研究现状电子商务于 90 年代初兴起于美国、加拿大等国,但在直到近几年,电子支付才被人们普遍接受。随着电子商务的发展,各种法规随之健全。两大国际信用卡组织 VISA 和 MasterCard 合作制订的安全电子交易(SET)协议定义了一种电子支付过程标准,其目的就是保护万维网上支付卡交易的 每一个环节。而国内,各大城市都处于实验探索阶段。各银行相继推出网上银行业务

11、。信用卡是目前最流行的支付方式,用卡付款代替传统的现金付款已越来越被人们所接受。电子支1付为用户提供了很大的方便,目前国内网上支付主要有三种业务形态:银行或银联的电子支付平台;第三方支付服务商的电子支付平台;企业内部自行建设的电子支付平台。1.2.2 发展趋势发展趋势电子商务的一个瓶颈问题就是实现电子化的支付问题。电子化的支付手段的出现已有一段时间,只是应用范围主要在金融机构之间,大企业间和信用卡消费等对交易环境有限制的局部领域2。随着电子商务的广泛应用,因特网上的商品销售额迅猛增长,网上的资金流动已经成为电子商务发展的主要障碍之一,迫切需要金融业提供完善的网上支付中介服务。作为买卖双方交易过

12、程中的“中间桥梁” ,第三方支付平台的崛起已是不峥的事实,大浪淘沙后,十大电子支付平台如支付宝,paypal,掌上通等已从中商家中脱颖而出,以其特定的技术优势,细分的服务市场,独特的经营处方,在电子支付市场各显身手,发展迅猛。这不仅带给人们快捷便利的支付服务,还推动电子支付产业链日益成熟,从十大支付平台的创业背景,应用特色,经营现状可以看出,电子支付市场正如朝阳般冉冉升起3。1.3 项目研究的目的和意义项目研究的目的和意义1.3.1 研究目的研究目的本项目的研究主要基于以下几方面考虑:第一,系统了解电子商务支付流程以及存在问题;第二,明确电子商务支付的功能与特点;第三,设计并实现一个电子商务在

13、线支付系统;1.3.2 研究意义研究意义自九十年代以来,因特网技术的飞速发展正在迅速地改变着人们的生活方式,因特网正在由科学工作者的工具变为普通百姓获取信息、进行交流的场所,而因特网的商业应用则尤为引人注目。全新的电子商务是指贸易活动各环节的电子化,它覆盖了与商务活动有关的所有方面。它突出的标志就是增加贸易机会,降低贸易成本,简化贸易流程,提高贸易效率。伴随着电子商务的快速发展,网上支付业务也逐步兴起。所谓网上支付就是交易过程中的资金转移环节,使货币友有形流动变为无形信用信息在网上流通,消费者可以跨越时间和地域的限制。网上支付2的参与,可以使电子商务由网上信息搜索和协议草签的阶段,转入实质性的

14、交易阶段,形成完整的电子商务。本文作者希望通过对电子商务支付系统的研究,明确电子商务支付系统功能特点以及存在的问题,提供系统的理论研究,设计并实现一个网上支付系统。1.4 论文的主要内容论文的主要内容以前人的研究为基础,了解并熟悉在线支付的整个流程,架构设计基于 J2EE框架的电子商务在线支付平台的架构设计,并实现面向管理者子系统。本文以电子商务网上支付系统的实现过程为主线,分别对各个实现阶段作说明。其中主要包括初期系统技术调研,需求分析,架构设计,界面设计,子系统系统实现及验证测试。首先,确定开发语言,然后去支付宝等网站进行调研,了解在线支付的整个流程,并参照系统简介,分析系统需求,并同时进

15、行知识储备,学习巩固 J2EE相关知识,并学习 Struts,Spring 和 Hibernate 应用框架。然后,需求分析的基础上,抽象出本系统与其他系统的接口,再设计出本系统内部的接口和函数,界面设计,并设计好数据库。搭建好系统框架,并编码实现面向管理者功能模块,同时进行单元测试,然后集成各个单元模块进行集成测试验证。1.5 本章小结本章小结 本章第一节介绍项目的研究背景,随后两节介绍项目的研究现状、发展趋势、目的以及意义所在。最后一节对论文项目的主要内容做了介绍。3第第 2 2 章章 开发技术及开发环境开发技术及开发环境本章主要介绍项目的开发技术,开发工具以及环境配置。2.1 开发技术开

16、发技术2.1.1 J2EE1. J2EE 简介目前,Java 2 平台有 3 个版本,它们是适用于小型设备和智能卡的 Java 2 平台 Micro 版(Java 2 Platform Micro Edition,J2ME) 、适用于桌面系统的 Java 2 平台标准版(Java 2 Platform Standard Edition,J2SE) 、适用于创建服务器应用程序和服务的 Java 2 平台企业版(Java 2 Platform Enterprise Edition,J2EE) 。J2EE 是一种利用 Java 2 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。它

17、是一套不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。2. J2EE 的优势J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:保留现存的 IT 资产,由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE 架构可以充分利用用户原有的投资。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的 J2EE 领域的升级途径。由于基于 J2EE 平台的产品几乎能够在任何操作系统

18、和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 高效的开发,J2EE 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。支持异构环境,J2EE 能够开发部署在异构环境中的可移植程序。基于J2EE 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中4是十分关键的。J2EE 标准也允许客户订购与 J2EE 兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 可伸缩性,企业必须要选择一

19、种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 J2EE 平台的应用程序可被部署到各种操作系统上。例如可被部署到高端 UNIX 与大型机系统,这种系统单机可支持 64 至 256 个处理器(这是 NT 服务器所望尘莫及的) 。J2EE 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 稳定的可用性,一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为 Internet 是全球化的、无处不在的,即使在夜间按计划停机也可能

20、造成严重损失。若是意外停机,那会有灾难性后果。J2EE 部署到可靠的操作环境中,他们支持长期的可用性。一些 J2EE 部署在 WINDOWS 环境中,客户也可选择健壮性能更好的操作系统如 Sun Solaris、IBM OS/390。最健壮的操作系统可达到 99.999%的可用性或每年只需 5 分钟停机时间。这是实时性很强商业系统理想的选择4。2.1.2 应用框架应用框架1.什么是应用框架 Spring 框架的设计者 Rod Johnson 对框架技术的描述是:框架是可重用的、 半成品的应用程序模块,它可以用来产生专门的定制程序。比如 Sun 公司的J2EE 技术规范和标准其实也就是一个框架体

21、系、Microsoft 公司的 VS.Net 技术平台其实也是一个框架体系5。2.为什么应用框架软件系统发展到今天,已经很复杂了,特别是服务器端软件,涉及到的知识、内容、问题太多。在某些方面使用别人成熟的框架,相当于别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟稳健的,可以处理系统中的很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,结构和扩展性都很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。 软件工程中。强调一个很重要的概念:高内聚,低耦合。为了实现“高内聚、5低耦合” ,把问题划分开来,对软件进行分

22、层,各个解决,易于控制,易于延展,易于分配资源。框架一般处在低层应用平台(如 J2EE)和高层业务逻辑之间的中间层。2.1.3 Struts,Spring,Hibernate本项目中采用的是 Struts2.0+Spring2.5 +Hibernate3.0 的整合:1Struts 框架-基于 MVC 的 Web 应用经典框架MVC 模式,Model-View-Control 的缩写,模型(Model)封装数据和所有基于对这些数据的操作,视图(View)封装对数据的显示,即用户界面。控制(Control)封装外界作用于模型的操作和对数据流向的控制等。MVC 模式将业务处理与显示分离,运用 MV

23、C 的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的低偶合的构件。Struts 最早是作为 Apache Jakarta 项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高 JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。它采用 MVC 模式,能够很好地帮助 Java 开发者利用 J2EE 开发Web 应用。和其他的 java 架构一样,Struts 也是面向对象设计,将 MVC 模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。利用 Struts 框架进行 Web 应用系统开发时,不仅从整体上能够

24、减轻构建J2EE Web 应用系统项目的设计和开发实现的负担,也为 Web 应用系统提供国际化、异常处理和数据库连接池等方面的技术支持。开发者使用 Struts 之类的框架是为了隐藏诸如对 HTTP、CGI 以及 JSP 之类技术应用的烦琐技术实现细节。“填空”式地开发实现应用系统。Struts 框架本身实现了 MVC 模式,也发展了 MVC 模式;应用系统的开发者可以采用“填空”式的方式来进行开发,因为 Struts 框架将一个标准的 MVC 的具体实现中的各个组件部分已经划分清晰和组件分离了。另外 Struts 框架还把标准的 Servlet、JSP、自定义标签(TagLib)和信息资源(

25、Message Resources)等整合到一个统一的应用框架中,开发人员利用该应用框架进行应用系统的开发时,不用再自己设计和编码实现 MVC 模式中的各个层的核心组件和应用系统的体系架构的正确性,因此能够节省开发时间和降低实现的风险。降低应用系统中的各个层组件之间的耦合度。6采用 Struts 框架技术,可以加快应用系统的开发速度、增强应用系统的灵活性、降低应用系统中的各个层组件之间的耦合度。因为它将应用系统中的表示层和控制层彼此松散地耦合在一起,这主要得益于采用 struts-config.xml 配置文件进行各个组件的配置管理;这样的设计方案也易于对系统的维护和功能扩展。 各个开发人员之

26、间的分工明确。 由于基于 Struts 框架技术实现的 Web 应用系统中的控制层、业务层与表示层三者之间各自相互分离,所以这样的设计方案能够使应用系统中的表示层的开发者(网页设计人员)与后台业务功能具体实现的 Java 程序员各司其职和分工明确,并且可以并行开发,提高开发效率。 简化表示层页面的设计和实现。 在 Struts 框架中,应用系统的开发者可以在表示层的页面中大量地使用Struts 框架中所提供的定制标签库技术,以实现在页面中把业务逻辑处理的功能实现代码分离开。从而简化系统中表示层的设计和开发实现,进而避免在页面中出现大量的 Java 脚本代码6。本项目采用的是 Struts 2.

27、0 - 号称全新的框架,但这仅仅是相对 Struts 1 而言。Struts 2 与 Struts 1 相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork 基础上发展起来的。从某种程度上来讲,Struts2 没有继承 Struts 1 的血统,而是继承 WebWork 的血统。或者说,WebWork 衍生出了 Struts2,而不是 Struts 1 衍生了 Struts2。因为 Struts2 是WebWork 的升级,而不是一个全新的框架,稳定性、性能等各方面都有很好的保证:而且吸收了 Struts 1 和 WebWork 两者的优势,是一个

28、非常值得学习的框架。2Spring 框架Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。传统 J2EE 应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致 J2EE 的应用没有真正实现 Write Once 及 Run Anywhere 的承诺。Spring 作为开源的中间件,独立于各种应用服务器

29、,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。7Spring 致力于 J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说 Spring 是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring 并不想取代那些已有的框架,而与它们无缝地整合。简单来说,Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring 提供的控制反转和面向切面编程插件式架构降低了应用组件之间的依赖性。借助于 XML 定义文件,开发者能够在运行时连接不同的应用组件,这对于单元测试特别有用,特别是那些需要针对不同客户实施不同的配

30、置而言7。轻量从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的、典型地,Spring 应用中的对象不依赖于 Spring 的特定类。 控制反转Spring 通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向

31、切面Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计和事务管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype) ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。

32、 框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你8。 Hibernate 框架Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻8量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义

33、的是,Hibernate可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任9。2.2 开发环境开发环境操作系统::Microsoft Windows XP Professional SP2数据库:MySQL 5.0 服务器:Apache Tomcat 6.0开发平台:Myeclipse 7.0建模设计工具:Star UML,Power Designer2.3 本章小结本章小结本章第一小节主要对项目所用的 J2EE 技术以及基于 J2EE 的开源应用框架Struts,Spring,Hibernate 作介绍;并随后在第二小节说明项目所用的软硬件配置环境。9第第 3 3 章

34、章 系统设计系统设计本章主要介绍项目的架构设计过程,包括需求分析,系统设计以及界面设计三部分。3.1 系统需求分析系统需求分析电子商务网上支付系统的用户主要为为消费者和商家提供一个安全、快捷的网上交易平台。3.1.1 系统用户特征系统用户特征电子商务网上支付系统包含面向客户,面向管理者和系统管理三部分,根据功能分布特点,将系统用户划分为议以下三种:1客户展 使用网上支付系统进行付款、收款、账户和交易管理的客户。2管理者 使用后台管理系统进行报表清单查询。3超级管理员 负责对管理者进行增、删、维护。3.1.23.1.2 系统依赖关系系统依赖关系 在原始设计上,本系统不是独立的,与银行卡系统和网上

35、购物系统都有接口进行交互。系统依赖关系如图 3.1 所示。账户充值时,通过银行卡系统接口实现对账户进行充值。为了更具有商业价值,应该提供各大大型网站的接口,方便用户适用本系统进行支付。Web个个人人PC防火墙客客户户银银行行卡卡系系统统数数据据库库网网上上购购物物系系统统网网上上支支付付系系统统 图 3.1 系统上下文依赖关系示意图 103.1.3 系统功能需求系统功能需求这里只作需求的概括描述,具体需求规约可参见软件需求规格说明书。1需求描述客户模块用户注册:注册并邮件确认帐号。用户登录:输入用户名和密码以及验证码登入。账户管理:包括查询账户,我的账户以及账户充值。我的账户包括个人信息、账户

36、信息,安全信息。网上支付:包括担保交易付款,即时到帐付款。网上收款:包括担保交易收款,即时到帐收款。交易管理:包括个人交易查询,交易处理和交易地址管理。个人交易包括买入交易,卖出交易,买入卖出交易。每种交易分:所有交易,进行中的交易,等待发货的交易,成功的交易,失败的交易,退款的交易,合并付款。交易处理是对查询的交易执行的操作管理模块报表查询:包括日报、月报、年报以及某时间段报表查询。系统管理模块管理员用户管理 :包括管理员账户的添加,删除以及维护。 2Use case为了更直观的了解系统需求,通过用户图对系统用户以及每种用户对应的功能直观描述。 本系统的三类用户:客户,管理者,超级管理员,客

37、户与管理者和超级管理员相对独立,其中客户模块用例图如图 3.2 所示,管理模块以及系统管理总用例图如图 3.3 所示。11上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上图 3.2 客户模块用例图而超级管理员是继承自管理者,拥有管理者的所有功能,另外拥有自己特有的功能:对管理者的增、删、维护操作:12上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上上图 3.3 管理模块以及系统管理总用例图3.

38、2 系统模块设计系统模块设计3.2.1 系统结构描述本系统按照不同的使用者来划分子系统,分为面向客户子系统,面向管理者子系统,系统管理子系统。其中,面向客户子系统是本系统的核心部分,是本系统存在的意义所在。面向客户子系统:该子系统向网上购物的客户和商家提供网上付款和收款的功能,有担保交易和即时到账交易的选择,同时提供个人账户管理和交易管理等功能,个人账户管理可以进行账户信息的修改,如用户名、密码的修改,网上充值,交易管理可以对相应交易进行处理,修改交易地址等。保障电子商务的正常进行。面向管理者子系统:该子系统向管理者提供对交易报表查询以及交易总额查13询,是管理者对使用该系统进行交易的资金流动

39、情况有详细和总体的了解,以便做出相应调整和决策。系统管理子系统:该子系统主要向超级管理员提供对管理者的增、删以及维护。 3.2.2 面向客户子系统1. 业务流程面向客户子系统从客户注册开始,客户只有通过注册之后才可以登录此系统。账户管理、交易管理、网上付款、收款无先后执行之分,超时需要重新登录。业务流程如图 3.4 所示。结束开始客客户户注注册册邮邮件件确确认认激激活活登登陆陆交交易易管管理理网网上上付付款款网网上上收收款款失失败败规规定定时时间间内内无无确确认认激激活活操操作作安安全全退退出出账账户户管管理理Session超超时时图 3.4 面向客户子系统业务流程2模块设计客户通过系统提供的

40、平台进行担保交易和即时到账两种方式的付款和收款、对帐户信息进行查看和修改、对交易的查询和处理等操作。其主要功能与功能描述如表 3.1 所示。14表 3.1 客户管理模块设计功能模块功能模块功能描述功能描述潜在客户注册在注册页面输入注册信息,邮箱确认激活后才能登陆使用系统客户登陆在登陆页面输入登陆名与密码信息,验证成功则登陆本系统即时到账付款、收款买家付账,资金立即充到卖方的账户担保交易付款、收款买家付账,交易资金先由支付系统保管,买家收到货物以后,资金才付给卖方我的账户查询帐户的个人信息,帐户信息,安全信息修改帐户修改帐户相关信息,包括登录密码帐户充值提供网上银行和支付卡两种方式的充值交易查询

41、按条件查询交易交易处理对查询出的信息进行相应的处理交易地址管理添加修改交易地址退出点击安全退出按钮退出本系统3.2.3 面向管理者子系统面向管理者子系统1. 业务流程管理者也需要登录并且账号处于激活状态才可以进入管理系统,操作过程如果 session 超时则需要重新登录。面向管理者子系统业务流程如图 3.5 所示。结束开始登登陆陆注注册册用用户户报报表表查查询询密密码码或或用用户户名名错错误误,账账号号冻冻结结安安全全退退出出充充值值用用户户报报表表查查询询交交易易用用户户报报表表查查询询Session 超超时时图 3.5 面向管理者子系统业务流程 2. 模块设计管理者查询注册、充值、交易三种

42、情况的日报表,月报表,年报表,时间段报表,并提供导出到 Excel 功能。其主要功能与功能描述如表 3.2 所示。表 3.2 面向管理模块设计功能模块功能模块功能描述功能描述注册用户清单查询根据日、月、年、时间段等条件选择查询注册用户清单充值用户清单查询根据日、月、年、时间段等条件选择查询充值用户清单交易用户清单查询根据日、月、年、时间段等条件选择查询交易用户清单15导出 Excel 表点击导出 Excel 链接,将数据导出到 Excel3.2.4 系统管理子系统系统管理子系统1. 业务流程系统管理子系统中,超级管理员可以进行系统管理员的所有操作,另外特有的功能是对普通管理者的增、删、改、查操

43、作。系统管理子系统业务流程如图3.6 所示。结束开始登登陆陆维维护护管管理理者者安安全全退退出出增增加加管管理理者者删删除除管管理理者者Session 超超时时密密码码或或用用户户名名错错误误,账账号号冻冻结结报报表表查查询询图 3.6 系统管理子系统业务流程系统管理者对管理者进行增、删、改、查等操作。其主要功能与功能描述如表 3.2 所示。表 3.3 系统管理模块功能模块功能模块功能描述功能描述查询管理者根据查询条件查询出符合条件的管理者增加管理者填写相应信息添加管理者删除管理者根据查询结果选择相应管理者进行删除维护管理者修改管理者密码,权限,邮件等信息报表查询同管理者子系统功能3.3 本章

44、小结本章小结本章是主要讨论系统的架构设计。第一节描述系统的需求分析,包括系统的16用户特征,系统上下文依赖关系,以及系统功能需求;第二节描述系统的结构描述以及面向客户、面向管理者、系统管理子系统模块的业务流程以及模块设计。第第 4 章章 数据库设计数据库设计本章主要介绍数据库层的设计,包括实体的以及实体之间关系的分析。4.1 数据库需求分析数据库需求分析根据系统的需求,初步可以抽象出以下实体:客户基本信息,帐户信息,充值记录信息,交易地址信息,交易记录;管理者信息。可以映射成数据库中对应的表。因交易地址记录中省份和城市有大量重复内容,不满足第二范式,因此分出另一张城市表,因心分出的城市表中省份

45、字段也有大量重复内容,为满足第二范式,因此再分出一张表省份表。本系统数据库设计概念模型中的实体包括客户登录信息,客户基本信息,账户信息,交易地址,充值记录,交易记录,管理者信息,权限信息。它们在数据库中分别对应客户登录信息表,客户基本信息表,账户信息表,交易地址表,充值记录表,交易记录表,管理者信息表和权限信息表:客户信息表表存储客户登录名,登录密码、支付密码以及用户名,openId 登录名,状态,证件号(身份证或护照) 、电话号码、安全保护问题以及答案、注册日期以及最后登录时间;账户信息表存储客户的可用余额以及冻结资金;激活码表存储客户编号和激活码;交易地址表存储交易的相关信息,包括姓名,通

46、信地址(地区,街道,邮编),联系方式;省份表存储省份编号以及对应省份名称;城市表存储隶属某一省份的城市列表编号和对应名称;充值记录表存储客户充值方式,时间,金额以及银行等信息;17交易记录表存储交易的订单号、商品编号、交易相关信息(起始时间、场所、金额、状态、 ) 、买方、卖方、送货方式、备注描述。商品信息表存储商品编号,商品名称,单价,数量,展示网站以及商品介绍;送货信息表存储交易编号,送货方式,邮费承担方,邮费金额以及收货地址;管理者信息表存储管理者的登录名,密码,用户名,权限类型(普通管理员、超级管理员) ,邮箱,注册时间,状态4.2 数据库详细设计数据库详细设计4.2.14.2.1 关

47、系实体关系实体根据数据库需求分析,确定以下表以及对应的字段:客户信息表(客户 ID,客户登录名,openid 登录名,登录密码,支付密码,用户名,状态,证件号,证件类型,电话号码,手机号,注册日期,安全问题,安全问题答案,最后登录时间):Customer(CID,userName,openID,userpsd,payPSD,name,enabled,identifyNo, identifyType,phoneNo,mobileNo,registerDate,psdQuestion,psdQAnswer, lastLoginTime)账户信息表(客户 ID,可用余额, 冻结资金)Account(

48、CID, availAcc, frozenAcc)激活码表(客户 ID,激活码)customer_activate_code(CIDm,activateCode)交易地址表(地址编号,客户 ID,姓名,城市编号,街道地址,邮编,电话号码,手机号)adress_list(addID,CID,trueName,cityID,streetAdd,postalNo,phoneNo,mobileNo)省份表(省份编号,中文名称)province(provinceID, provinceName)城市表(城市编号,城市名称,所属省份编号)city(cityID,cityName,provinceID)18

49、充值记录表(充值记录 ID,客户 ID,充值类型,充值金额,充值时间,充值银行)prepaid_rec(dpositRecID,CID,dpositType,dpositSum,dposiTime,dpositBank)交易记录表(交易记录编号,产品 ID,交易开始时间,交易结束时间,交易状态,买家 ID,卖家 id,交易金额,送货方式,备注说明)trade_rec(tradeID,prodID,tradeSTime,tradeETime,tradeState,buyerID,sellerID,tradeSum,deliverType,details)商品信息表(产品编号,产品名称,单价,数量

50、,展示网站,产品介绍)product(proId,proName,unitPrice,quantity,proNet,intro)送货信息表(交易编号,送货方式,邮费承担方,邮费金额,地址记录编号)deliver(tradeID,deliverType,postagePayer,postage,addID)管理者信息表(管理者 ID,管理者登录名,密码,管理者类型,电子邮件,创建时间,状态)admin(adminID,adminName,adminPsd,adminType,email,createTime,status)4.2.2 实体关系实体关系在上节描述的实体中,激活码表,帐户信息表,充

51、值记录表,帐户信息表,地址信息表,交易记录表均依赖于客户的存在,通过 CID 外键关联客户信息表customer;交易记录中的商品信息依赖产品表,通过外键产品 ID 关联 product 表;送货信息表 deliver 依赖于交易的存在,通过交易记录编号关联 trade_rec;而送货信息表中的地址信息依赖于地址信息表,通过外键地址编号关联地址信息表address_list,地址信息表中的地址中的城市依赖于城市表中的城市,通过外键cityID 关联城市表 city,而城市表又通过外键 provinceID 与省份表 province 关联。各表关系如图 4.1 所示。19adminPKadmi

52、nID adminName adminPsd adminType email createTime statuscustomer_activate_codePK,FK1CID activateCodecustomerPKCID userName openID userPSD payPSD name enabled identifyNo identifyType phoneNo mobileNo registerDate psdQuestion psdQAnswer lastLoginTimeaccountPK,FK1CID availAcc frozenAccprepaid_recPKdpos

53、itRecIDFK1CID dpositType dpositSum dpositTime dpositBankadress_listPKaddIDFK1CID trueNameFK2cityID streetAdd postalNo phoneNo mobileNoprovincePKprovinceID provinceNameproductPKproId proName unitPrice quantity proNet introtrade_recPKtradeID prodID tradeSTime tradeETime tradeStadeFK2buyerIDFK3sellerID

54、 tradeSum deliverType detailsFK1proId CIDdeliverPK,FK1tradeID postagePayer postageFK2addIDcityPKcityID cityNameFK1provinceID1110.*0.111111.*10.1111.*111图 4.1 实体关系示意图4.3 本章小结本章小结本章第一节主要分析数据库需求,根据数据库设计规范划分出实体,第二节主要描述关系实体以及他们之间的关系,给出了关系图。20第第 5 章章 子系统实现与验证子系统实现与验证本章描述面向管理者子系统的实现,主要讲述关键技术点的实现,包括清单查询,Exc

55、el 导出,分页功能以及简单安全控制的实现。5.1 系统实现系统实现本系统采用 Struts 2 + Spring + Hibernate 框架,页面数据包含在 Action中,通过 Getter 和 Setter 方法获取。大多时候,实现 Action,都会继承com.opensymphony.xwork2.ActionSupport 类,并重写类里的 String execute()方法。execute()方法中调用 service 层的接口中的方法,service 层的实现类则调用 Hibernate 层中的 DAO 类中的相应方法。Spring 框架的引入,IoC(控制反转)技术的应用

56、,在服务器启动时,所有类和对象均实例化,为调用做好准备。5.1.1 清单查询的实现清单查询的实现本系统中的清单查询涉及到日,月,年,以及时间段四种类型,经过分析,四种类型其实都是一个时间段,因此查询时在 Hibernate 层调用 DAO 里自定义了同一个函数:Public List findByPeriod(Timestamp sdate,Timestamp edate) /open sessionSession session =this.getHibernateTemplate().getSessionFactory() .openSession();Criteria criteria

57、= session.createCriteria(Customer.class);criteria.add(Restrictions.between(registerDate,sdate, edate); / 添加查询条件List list = criteria.list();session.close(); /close sessionReturn list ;对于时间段(即传递的两个参数)处理,因从页面获取的时间是从日历控件中获取的,格式是“YYYY-MM-DD”格式的,后面的时分秒均为零,而数据库中存储的时间类型,注册日期是 Date 类型,充值时间和交易时间精确到时分秒,设置的是 Ti

58、mestamp 类型。调用查询函数前,需对开始时间和结束时 间进行处理,转成 Timestamp 格式。21对于日报表查询,sdate 和 edate 是同一天,把 edate 增加一天,这里用到了 Calendar 类里的 add(Calendar.DAY_OF_MONTH, 1)方法,Calendar 类不用考虑当前月是 30 天还是 31 天,是闰年还是平年的二月,函数里有判断,如查询2009-04-30 的数据是把 sdate 设置为 2009-04-30 00:00:00,edate 设置为2009-05-01 00:00:00,这样能保证查询到 2009-04-30 这一天的所有数

59、据。对于月报表查询,讲页面传递的 year 和 month 变量设置到 Calendar 对象里,并且设置 Calendar.Date 为当月第一天,然后调用 roll(Calendar.DATE, -1)方法,回滚一天,日期回到此月的最后一天,也不用考虑当前月的天数。Calendar类实在很方便,推荐使用此类。对于年报表查询,直接将页面传递的参数设置到 Calendar 对象中,并且设置开始时间为本年第一天的第一秒,结束时间的最后天的最后一秒。对于时间段报表查询,和日报表查询的处理类型,都是对页面传递的 Date对象进行处理,结束时间增加一天后进行查询。5.1.2 导出导出 Excel 的实

60、现的实现本系统 Excel 导出功能的实现用到 poi-2.5.1.Jar 包,在 service 层将调用 DAO返回的查询结果 List 相应的属性值设置到新建的 Excel 工作表单元格,然后将创建输出流,将 Excel 工作簿写到文件输出流中,获取文件输出流存盘。/新建 Excel 工作簿HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet(sheet1);/创建一行存储对应的字段名HSSFRow row = sheet.createRow(0);HSSFCell cell = row.createC

61、ell(short) 0);cell.setEncoding(HSSFCell.ENCODING_UTF_16);/设置编码格式cell.setCellValue(序号);/依次将 DAO 层返回的 list 集写到 Excel 中,for (int i = 0; i list.size(); +i) Customer user = list.get(i);/依次获取 list 集中的对象row = sheet.createRow(i + 1);22/编号索引递增cell = row.createCell(short) 0); cell.setEncoding(HSSFCell.ENCODIN

62、G_UTF_16); cell.setCellValue(i + 1);/将相应的属性值写到 Excel 单元格cell = row.createCell(short) 1); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(user.getEnabled();/创建输出流ByteArrayOutputStream os = new ByteArrayOutputStream();trywb.write(os);/将 Excel 值写到输出流catch (IOException e)e.printStackTrace(

63、);5.1.3 分页功能的实现分页功能的实现有两种方式的分页,一种是一次取到所有结果放到内存中,通过设置 iterator标签偏移量 offset 来控制页面输出记录。一种是 Hibernate 分页,传递两个参数(返回记录总数对应每页显示最大条数,开始索引号对应每页显示第一条记录号)到 hibernate DAO 层,控制数据库的输出。前一种方法在数据量不大时有优势,但是数据量很大时效率大大降低,后者适合大数据量时查询,但是有二次查询,因此这两种方法各有利弊。考虑到系统的扩展性,采用第二种方式分页。在 action 层处理确定 pageSize和 pageNow 的值,传递给 DAO 里的相

64、应的查询函数:23criteria.setFirstResult(pageNow);/结果集中按要求取的第一条记录数criteria.setMaxResults(pageSize);/设置每页显示记录数5.1.4 简单安全控制的实现简单安全控制的实现1防止未登录访问本系统必须用户登录后才能使用,因此对于用户访问的页面要提前判断用户是否登录或者是否有权限。实现方法是写一个判断用户登录状态以及权限的 jsp,在每个需要验证的页面中,将该 jsp 文件 include 进去。判断 jsp 文件没有包含主要语法如下: alert(您还没有登陆或者登录超时,请重新登陆!); window.parent.

65、location.href=./index.action; alert(您的账号被冻结,激活请联系管理员nt邮箱:ntQQ:330369808); /some action 需要验证的页面中加入以下语法即可:2设置 Session 有效期24Tomcat 默认 session 有效期是 30 分钟,但我可以在 web.xml 文件中自己手动配置 session 的有效期,代码如下: 10 可以自己修改时间值 10,适应自己的需求。5.2 系统验证系统验证5.2.1 清单查询的验证清单查询的验证我们在 5 月 12 日上午做了 4 笔交易,均是耳机。在交易的时间段查询中,通过日历控件选择 200

66、9-5-11 至 2009-5-12 日的时间段,查询显示如图 5.1 所示。图 5.1 交易用户清单示意图在该查询结果清单中,包含上午查询的这四笔交易,而且经检查,查询结果均为 11 日到 12 日之间的结果,并且包含所有 11 日到 12 日之间的所有交易记录。查询结果无误。另外,选择一个没有交易记录的时间段,经测试,查询结果列表为空,没有记录显示,也达到预期结果。日报表查询,月报表查询,年报表查询经测试均达到预期效果。清单查询实现无误。5.2.2 导出到导出到 Excel 的的验证验证 在选择了一个查询页面后,选择相应查询条件,查询清单列出的同时会有导出到 Excel 表的链接。点击链接弹出下载对话框,如图 5.2 所示。25图 5.2 文件下载示意图点击打开可以直接在网页中打开,点击保存将文件保存到本地磁盘上:用户可以自己修改文件名称和路径保存。保存后在本地机器上用 Excel 打开,数据显示正确无误。5.2.3 分页功能的分页功能的验证验证当前系统数据库中,2009.5.10 至 2009.5.12 日的共有 37 条记录,设置每页显示记录数为 5,预期应该有 8 页,部署好

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!