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

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

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

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

2、echeng ZhangDirected by :Congshi Jiang Guangzhi LiaoMay 2009重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的容外,本学位论文的研究成果不包含他人享有著作权的容。对本论文所涉与的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名:日期:30 / 38摘要伴随着电子商务的快速发展,网上支付业务也逐步兴起。作为电子商务活动的重要环节,在线支付网上支付的参与,可以使电子商务由网上信息搜索和协议草签的阶段,

3、转入实质性的交易阶段,形成完整的电子商务。通过对电子商务支付系统的研究,明确电子商务支付流程以与支付系统功能特点,提供系统的理论研究,设计并实现一个网上支付系统。关键字:电子商务;在线支付;设计;实现ABSTRACTConcomitant with rapid development of e-commerce,online payment transactions grow gradually. As a key link in e-business commerce,online payment makes transactions change from papery state to

4、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 of an online payment system.Key words:e-commerce;online payment

5、;design;implement目录摘 要IABSTRACTII第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章 开发技术与开发环境42.1 开发技术42.1.1 J2EE42.1.2 应用框架52.1.3 Struts,Spring,Hibernate62.2 运行环境92.3 本章小结9第3章 系统设计103.1 系统需求分析103.1.1 系统用户特征103.1.2 系统依赖关系103.1.3 系统功能需求113.2

6、系统模块设计133.2.1 系统结构描述133.2.2 面向客户子系统143.2.3 面向管理者子系统153.2.4 系统管理子系统163.3 本章小结17第4章 数据库设计184.1 数据库需求分析184.2 数据库详细设计194.2.1 关系实体194.2.2 实体关系204.3 本章小结21第5章 子系统实现与验证225.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

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

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

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

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

11、平台如支付宝,paypal,掌上通等已从中商家中脱颖而出,以其特定的技术优势,细分的服务市场,独特的经营处方,在电子支付市场各显身手,发展迅猛。这不仅带给人们快捷便利的支付服务,还推动电子支付产业链日益成熟,从十大支付平台的创业背景,应用特色,经营现状可以看出,电子支付市场正如般冉冉升起3。1.3 项目研究的目的和意义1.3.1研究目的本项目的研究主要基于以下几方面考虑:第一,系统了解电子商务支付流程以与存在问题;第二,明确电子商务支付的功能与特点;第三,设计并实现一个电子商务在线支付系统;1.3.2研究意义自九十年代以来,因特网技术的飞速发展正在迅速地改变着人们的生活方式,因特网正在由科学工

12、作者的工具变为普通百姓获取信息、进行交流的场所,而因特网的商业应用则尤为引人注目。全新的电子商务是指贸易活动各环节的电子化,它覆盖了与商务活动有关的所有方面。它突出的标志就是增加贸易机会,降低贸易成本,简化贸易流程,提高贸易效率。伴随着电子商务的快速发展,网上支付业务也逐步兴起。所谓网上支付就是交易过程中的资金转移环节,使货币友有形流动变为无形信用信息在网上流通,消费者可以跨越时间和地域的限制。网上支付的参与,可以使电子商务由网上信息搜索和协议草签的阶段,转入实质性的交易阶段,形成完整的电子商务。本文作者希望通过对电子商务支付系统的研究,明确电子商务支付系统功能特点以与存在的问题,提供系统的理

13、论研究,设计并实现一个网上支付系统。1.4 论文的主要容以前人的研究为基础,了解并熟悉在线支付的整个流程,架构设计基于J2EE框架的电子商务在线支付平台的架构设计,并实现面向管理者子系统。本文以电子商务网上支付系统的实现过程为主线,分别对各个实现阶段作说明。其中主要包括初期系统技术调研,需求分析,架构设计,界面设计,子系统系统实现与验证测试。首先,确定开发语言,然后去支付宝等进行调研,了解在线支付的整个流程,并参照系统简介,分析系统需求,并同时进行知识储备,学习巩固J2EE相关知识,并学习Struts,Spring和Hibernate应用框架。然后,需求分析的基础上,抽象出本系统与其他系统的接

14、口,再设计出本系统部的接口和函数,界面设计,并设计好数据库。搭建好系统框架,并编码实现面向管理者功能模块,同时进行单元测试,然后集成各个单元模块进行集成测试验证。1.5 本章小结本章第一节介绍项目的研究背景,随后两节介绍项目的研究现状、发展趋势、目的以与意义所在。最后一节对论文项目的主要容做了介绍。第2章开发技术与开发环境本章主要介绍项目的开发技术,开发工具以与环境配置。2.1 开发技术2.1.1 J2EE1. J2EE简介目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于

15、桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。它是一套不同于传统应用开发的技术架构,包含许多组件,主要可简化且规应用系统的开发与部署,进而提高可移植性、安全与再用价值。2. J2EE的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:保留现存的IT资产,由于企业必须适应新的

16、商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 高效的开发,J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。支持异构环境,J2EE能够开发部署在异构环境中的可移植程序。基于

17、J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 可伸缩性,企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器(这是NT服务器所望尘莫与的)。J2EE领域的供应商提供了更为广

18、泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 稳定的可用性,一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为Internet是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理

19、想的选择4。2.1.2 应用框架1.什么是应用框架 Spring框架的设计者Rod Johnson对框架技术的描述是:框架是可重用的、半成品的应用程序模块,它可以用来产生专门的定制程序。比如Sun 公司的J2EE技术规和标准其实也就是一个框架体系、Microsoft公司的VS.Net技术平台其实也是一个框架体系5。2.为什么应用框架软件系统发展到今天,已经很复杂了,特别是服务器端软件,涉与到的知识、容、问题太多。在某些方面使用别人成熟的框架,相当于别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟稳健的,可以处理系统中的很多细节问题,比如,事物处理,安全性,数

20、据流控制等问题。还有框架一般都经过很多人使用,结构和扩展性都很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。 软件工程中。强调一个很重要的概念:高聚,低耦合。为了实现“高聚、低耦合”,把问题划分开来,对软件进行分层,各个解决,易于控制,易于延展,易于分配资源。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。2.1.3 Struts,Spring,Hibernate本项目中采用的是Struts2.0+Spring2.5 +Hibernate3.0的整合:1Struts框架-基于MVC的Web应用经典框架MVC模式,Model-View-Control的缩写,模型

21、(Model)封装数据和所有基于对这些数据的操作,视图(View)封装对数据的显示,即用户界面。控制(Control)封装外界作用于模型的操作和对数据流向的控制等。MVC模式将业务处理与显示分离,运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的低偶合的构件。Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以与面向对象的技术水准。它采用MVC模式,能够很好地帮助Java开发者利用J2EE开发Web应用。和其他的java

22、架构一样,Struts 也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。利用Struts框架进行Web应用系统开发时,不仅从整体上能够减轻构建J2EE Web应用系统项目的设计和开发实现的负担,也为Web应用系统提供国际化、异常处理和数据库连接池等方面的技术支持。开发者使用Struts 之类的框架是为了隐藏诸如对 、CGI以与JSP之类技术应用的烦琐技术实现细节。“填空”式地开发实现应用系统。Struts 框架本身实现了MVC模式,也发展了MVC模式;应用系统的开发者可以采用“填空”式的方式来进行开发,因为Struts 框架将一个标准的MVC的具体实现中的各个组件

23、部分已经划分清晰和组件分离了。另外Struts框架还把标准的Servlet、JSP、自定义标签(TagLib)和信息资源(Message Resources)等整合到一个统一的应用框架中,开发人员利用该应用框架进行应用系统的开发时,不用再自己设计和编码实现MVC模式中的各个层的核心组件和应用系统的体系架构的正确性,因此能够节省开发时间和降低实现的风险。降低应用系统中的各个层组件之间的耦合度。采用Struts框架技术,可以加快应用系统的开发速度、增强应用系统的灵活性、降低应用系统中的各个层组件之间的耦合度。因为它将应用系统中的表示层和控制层彼此松散地耦合在一起,这主要得益于采用struts-co

24、nfig.xml配置文件进行各个组件的配置管理;这样的设计方案也易于对系统的维护和功能扩展。各个开发人员之间的分工明确。由于基于Struts框架技术实现的Web应用系统中的控制层、业务层与表示层三者之间各自相互分离,所以这样的设计方案能够使应用系统中的表示层的开发者(网页设计人员)与后台业务功能具体实现的Java程序员各司其职和分工明确,并且可以并行开发,提高开发效率。简化表示层页面的设计和实现。在Struts框架中,应用系统的开发者可以在表示层的页面量地使用Struts框架中所提供的定制标签库技术,以实现在页面中把业务逻辑处理的功能实现代码分离开。从而简化系统中表示层的设计和开发实现,进而避

25、免在页面中出现大量的Java脚本代码6。本项目采用的是Struts 2.0 - 号称全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和We

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

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

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

29、例如审计和事务管理)进行聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以与它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的E容器,它们经常是庞大与笨重的,难以使用。框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个

30、XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你8。Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用E的J2EE架构中取代CMP,完成数据持久化的重任9。2.2 开发环境操作系统::Microsoft Windows XP Pro

31、fessional SP2数据库:MySQL 5.0 服务器:Apache Tomcat 6.0开发平台:Myeclipse 7.0建模设计工具:Star UML,Power Designer2.3 本章小结本章第一小节主要对项目所用的J2EE技术以与基于J2EE的开源应用框架Struts,Spring,Hibernate作介绍;并随后在第二小节说明项目所用的软硬件配置环境。第3章系统设计本章主要介绍项目的架构设计过程,包括需求分析,系统设计以与界面设计三部分。3.1 系统需求分析电子商务网上支付系统的用户主要为为消费者和商家提供一个安全、快捷的网上交易平台。3.1.1系统用户特征电子商务网上

32、支付系统包含面向客户,面向管理者和系统管理三部分,根据功能分布特点,将系统用户划分为议以下三种:1客户展 使用网上支付系统进行付款、收款、账户和交易管理的客户。2管理者使用后台管理系统进行报表清单查询。3超级管理员负责对管理者进行增、删、维护。3.1.2 系统依赖关系在原始设计上,本系统不是独立的,与银行卡系统和网上购物系统都有接口进行交互。系统依赖关系如图3.1所示。账户充值时,通过银行卡系统接口实现对账户进行充值。为了更具有商业价值,应该提供各大大型的接口,方便用户适用本系统进行支付。图3.1 系统上下文依赖关系示意图3.1.3 系统功能需求这里只作需求的概括描述,具体需求规约可参见软件需

33、求规格说明书。1需求描述客户模块用户注册:注册并确认。用户登录:输入用户名和密码以与验证码登入。账户管理:包括查询账户,我的账户以与账户充值。我的账户包括个人信息、账户信息,安全信息。网上支付:包括担保交易付款,即时到帐付款。网上收款:包括担保交易收款,即时到帐收款。交易管理:包括个人交易查询,交易处理和交易地址管理。个人交易包括买入交易,卖出交易,买入卖出交易。每种交易分:所有交易,进行中的交易,等待发货的交易,成功的交易,失败的交易,退款的交易,合并付款。交易处理是对查询的交易执行的操作管理模块报表查询:包括日报、月报、年报以与某时间段报表查询。系统管理模块管理员用户管理 :包括管理员账户

34、的添加,删除以与维护。 2Use case为了更直观的了解系统需求,通过用户图对系统用户以与每种用户对应的功能直观描述。 本系统的三类用户:客户,管理者,超级管理员,客户与管理者和超级管理员相对独立,其中客户模块用例图如图3.2所示,管理模块以与系统管理总用例图如图3.3所示。图3.2 客户模块用例图而超级管理员是继承自管理者,拥有管理者的所有功能,另外拥有自己特有的功能:对管理者的增、删、维护操作:图 3.3 管理模块以与系统管理总用例图3.2 系统模块设计3.2.1 系统结构描述本系统按照不同的使用者来划分子系统,分为面向客户子系统,面向管理者子系统,系统管理子系统。其中,面向客户子系统是

35、本系统的核心部分,是本系统存在的意义所在。面向客户子系统:该子系统向网上购物的客户和商家提供网上付款和收款的功能,有担保交易和即时到账交易的选择,同时提供个人账户管理和交易管理等功能,个人账户管理可以进行账户信息的修改,如用户名、密码的修改,网上充值,交易管理可以对相应交易进行处理,修改交易地址等。保障电子商务的正常进行。面向管理者子系统:该子系统向管理者提供对交易报表查询以与交易总额查询,是管理者对使用该系统进行交易的资金流动情况有详细和总体的了解,以便做出相应调整和决策。系统管理子系统:该子系统主要向超级管理员提供对管理者的增、删以与维护。3.2.2 面向客户子系统1. 业务流程面向客户子

36、系统从客户注册开始,客户只有通过注册之后才可以登录此系统。账户管理、交易管理、网上付款、收款无先后执行之分,超时需要重新登录。业务流程如图3.4所示。图3.4面向客户子系统业务流程2模块设计客户通过系统提供的平台进行担保交易和即时到账两种方式的付款和收款、对信息进行查看和修改、对交易的查询和处理等操作。其主要功能与功能描述如表3.1所示。表 3.1 客户管理模块设计功能模块功能描述潜在客户注册在注册页面输入注册信息,确认激活后才能登陆使用系统客户登陆在登陆页面输入登陆名与密码信息,验证成功则登陆本系统即时到账付款、收款买家付账,资金立即充到卖方的账户担保交易付款、收款买家付账,交易资金先由支付

37、系统保管,买家收到货物以后,资金才付给卖方我的账户查询的个人信息,信息,安全信息修改修改相关信息,包括登录密码充值提供网上银行和支付卡两种方式的充值交易查询按条件查询交易交易处理对查询出的信息进行相应的处理交易地址管理添加修改交易地址退出点击安全退出按钮退出本系统3.2.3 面向管理者子系统1. 业务流程管理者也需要登录并且账号处于激活状态才可以进入管理系统,操作过程如果session超时则需要重新登录。面向管理者子系统业务流程如图3.5所示。图3.5面向管理者子系统业务流程 2. 模块设计管理者查询注册、充值、交易三种情况的日报表,月报表,年报表,时间段报表,并提供导出到Excel功能。其主

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

39、描述如表3.2所示。表3.3 系统管理模块功能模块功能描述查询管理者根据查询条件查询出符合条件的管理者增加管理者填写相应信息添加管理者删除管理者根据查询结果选择相应管理者进行删除维护管理者修改管理者密码,权限,等信息报表查询同管理者子系统功能3.3本章小结本章是主要讨论系统的架构设计。第一节描述系统的需求分析,包括系统的用户特征,系统上下文依赖关系,以与系统功能需求;第二节描述系统的结构描述以与面向客户、面向管理者、系统管理子系统模块的业务流程以与模块设计。第4章数据库设计本章主要介绍数据库层的设计,包括实体的以与实体之间关系的分析。4.1 数据库需求分析根据系统的需求,初步可以抽象出以下实体

40、:客户基本信息,信息,充值记录信息,交易地址信息,交易记录;管理者信息。可以映射成数据库中对应的表。因交易地址记录中省份和城市有大量重复容,不满足第二式,因此分出另一城市表,因心分出的城市表中省份字段也有大量重复容,为满足第二式,因此再分出一表省份表。本系统数据库设计概念模型中的实体包括客户登录信息,客户基本信息,账户信息,交易地址,充值记录,交易记录,管理者信息,权限信息。它们在数据库中分别对应客户登录信息表,客户基本信息表,账户信息表,交易地址表,充值记录表,交易记录表,管理者信息表和权限信息表:客户信息表表存储客户登录名,登录密码、支付密码以与用户名,openId登录名,状态,证件号(或

41、护照)、安全保护问题以与答案、注册日期以与最后登录时间;账户信息表存储客户的可用余额以与冻结资金;激活码表存储客户编号和激活码;交易地址表存储交易的相关信息,包括,通信地址(地区,街道, ),联系方式;省份表存储省份编号以与对应省份名称;城市表存储隶属某一省份的城市列表编号和对应名称;充值记录表存储客户充值方式,时间,金额以与银行等信息;交易记录表存储交易的订单号、商品编号、交易相关信息(起始时间、场所、金额、状态、)、买方、卖方、送货方式、备注描述。商品信息表存储商品编号,商品名称,单价,数量,展示以与商品介绍;送货信息表存储交易编号,送货方式,邮费承担方,邮费金额以与收货地址;管理者信息表

42、存储管理者的登录名,密码,用户名,权限类型(普通管理员、超级管理员),注册时间,状态4.2 数据库详细设计4.2.1 关系实体根据数据库需求分析,确定以下表以与对应的字段:客户信息表(客户ID,客户登录名,openid登录名,登录密码,支付密码,用户名,状态,证件号,证件类型,手机号,注册日期,安全问题,安全问题答案,最后登录时间):Customer(CID,userName,openID,userpsd,payPSD,name,enabled,identifyNo, identifyType,phoneNo,mobileNo,registerDate,psdQuestion,psdQAnsw

43、er, lastLoginTime)账户信息表(客户ID,可用余额, 冻结资金)Account(CID, availAcc, frozenAcc)激活码表(客户ID,激活码)customer_activate_code(CIDm,activateCode)交易地址表(地址编号,客户ID,城市编号,街道地址, ,,手机号)adress_list(addID,CID,trueName,cityID,streetAdd,postalNo,phoneNo,mobileNo)省份表(省份编号,中文名称)province(provinceID, provinceName)城市表(城市编号,城市名称,所属省

44、份编号)city(cityID,cityName,provinceID)充值记录表(充值记录ID,客户ID,充值类型,充值金额,充值时间,充值银行)prepaid_rec(dpositRecID,CID,dpositType,dpositSum,dposiTime,dpositBank)交易记录表(交易记录编号,产品ID,交易开始时间,交易结束时间,交易状态,买家ID,卖家id,交易金额,送货方式,备注说明)trade_rec(tradeID,prodID,tradeSTime,tradeETime,tradeState,buyerID,sellerID,tradeSum,deliverTyp

45、e,details)商品信息表(产品编号,产品名称,单价,数量,展示,产品介绍)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 实体关系

46、在上节描述的实体中,激活码表,信息表,充值记录表,信息表,地址信息表,交易记录表均依赖于客户的存在,通过CID外键关联客户信息表customer;交易记录中的商品信息依赖产品表,通过外键产品ID关联product表;送货信息表deliver依赖于交易的存在,通过交易记录编号关联trade_rec;而送货信息表中的地址信息依赖于地址信息表,通过外键地址编号关联地址信息表address_list,地址信息表中的地址中的城市依赖于城市表中的城市,通过外键cityID关联城市表city,而城市表又通过外键provinceID与省份表province关联。各表关系如图4.1所示。图4.1 实体关系示意图

47、4.3 本章小结本章第一节主要分析数据库需求,根据数据库设计规划分出实体,第二节主要描述关系实体以与他们之间的关系,给出了关系图。第5章 子系统实现与验证本章描述面向管理者子系统的实现,主要讲述关键技术点的实现,包括清单查询,Excel导出,分页功能以与简单安全控制的实现。5.1 系统实现本系统采用Struts 2 + Spring + Hibernate框架,页面数据包含在Action中,通过Getter和Setter方法获取。大多时候,实现Action,都会继承com.opensymphony.xwork2.ActionSupport类,并重写类里的String execute()方法。e

48、xecute()方法中调用service层的接口中的方法,service层的实现类则调用Hibernate层中的DAO类中的相应方法。Spring框架的引入,IoC(控制反转)技术的应用,在服务器启动时,所有类和对象均实例化,为调用做好准备。5.1.1 清单查询的实现本系统中的清单查询涉与到日,月,年,以与时间段四种类型,经过分析,四种类型其实都是一个时间段,因此查询时在Hibernate层调用DAO里自定义了同一个函数:Public List findByPeriod(Timestamp sdate,Timestamp edate) /open sessionSession session

49、=this.getHibernateTemplate().getSessionFactory() .openSession();Criteria criteria = session.createCriteria(Customer.class);criteria.add(Restrictions.between(registerDate,sdate, edate); / 添加查询条件Listlist = criteria.list();session.close(); /close sessionReturn list ;对于时间段(即传递的两个参数)处理,因从页面获取的时间是从日历控件中获取

50、的,格式是“YYYY-MM-DD”格式的,后面的时分秒均为零,而数据库中存储的时间类型,注册日期是Date类型,充值时间和交易时间精确到时分秒,设置的是Timestamp类型。调用查询函数前,需对开始时间和结束时 间进行处理,转成Timestamp格式。对于日报表查询,sdate和edate是同一天,把edate增加一天,这里用到了Calendar类里的add(Calendar.DAY_OF_MONTH, 1)方法,Calendar类不用考虑当前月是30天还是31天,是闰年还是平年的二月,函数里有判断,如查询2009-04-30的数据是把sdate设置为2009-04-30 00:00:00,

51、edate设置为2009-05-01 00:00:00,这样能保证查询到2009-04-30这一天的所有数据。对于月报表查询,讲页面传递的year和month变量设置到Calendar对象里,并且设置Calendar.Date为当月第一天,然后调用roll(Calendar.DATE, -1)方法,回滚一天,日期回到此月的最后一天,也不用考虑当前月的天数。Calendar类实在很方便,推荐使用此类。对于年报表查询,直接将页面传递的参数设置到Calendar对象中,并且设置开始时间为本年第一天的第一秒,结束时间的最后天的最后一秒。对于时间段报表查询,和日报表查询的处理类型,都是对页面传递的Dat

52、e对象进行处理,结束时间增加一天后进行查询。5.1.2 导出Excel的实现本系统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

53、 cell = row.createCell(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);/编号索引递增cell = row.createCell(short) 0); cell.setEncoding(HSSFCel

54、l.ENCODING_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.printStackT

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

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

57、账号被冻结,激活请联系管理员nt:thlq411163.nt :330369808); /some action需要验证的页面中加入以下语法即可:2设置Session有效期Tomcat默认session有效期是30分钟,但我可以在web.xml文件中自己手动配置session的有效期,代码如下:1 2 10 3 可以自己修改时间值10,适应自己的需求。5.2 系统验证5.2.1 清单查询的验证我们在5月12日上午做了4笔交易,均是耳机。在交易的时间段查询中,通过日历控件选择2009-5-11至2009-5-12日的时间段,查询显示如图5.1所示。图5.1交易用户清单示意图在该查询结果清单中,包

58、含上午查询的这四笔交易,而且经检查,查询结果均为11日到12日之间的结果,并且包含所有11日到12日之间的所有交易记录。查询结果无误。另外,选择一个没有交易记录的时间段,经测试,查询结果列表为空,没有记录显示,也达到预期结果。日报表查询,月报表查询,年报表查询经测试均达到预期效果。清单查询实现无误。5.2.2 导出到Excel的验证在选择了一个查询页面后,选择相应查询条件,查询清单列出的同时会有导出到Excel表的。点击弹出下载对话框,如图5.2所示。图5.2文件下载示意图点击打开可以直接在网页中打开,点击保存将文件保存到本地磁盘上:用户可以自己修改文件名称和路径保存。保存后在本地机器上用Ex

59、cel打开,数据显示正确无误。5.2.3 分页功能的验证当前系统数据库中,2009.5.10至2009.5.12日的共有37条记录,设置每页显示记录数为5,预期应该有8页,部署好后登录进入,在注册用户时间段查询页面中,选择起始日期分别为2009-5-10和2009-5-12,查询页面结果如图5.3所示:图5.3 注册用户时间段查询清单1显示结果有8页,达到预期显示效果,点击相第四页,显示如图5.4所示的结果:图 5.4 注册用户时间段查询清单2跳转正确,表格中显示的记录也跟随变换,显示无误。选择2009-4.11至2009-4-11这一时间段的结果,点击查询,因这天没有注册用户,预期页数为0.

60、查询后页面显示如图5.5所示:图5.5 注册用户时间段查询清单35.2.4 简单安全控制的验证1. 防止未登录访问在地址栏中,直接输入年注册用户查询页面地址localhost:8080/eops/administrator/queryYearRegister.jsp页面弹出如图5.7所示提示框:图5.7 未登录提示框该显示与预期结果符合,点击确定当前页面跳转到登录页面,也与预期结果相符。在跳转的登录中以超级管理员身份登录以后添加一名用户名为lx_snow的普通管理员,设置初始状态为冻结,然后用lx_snow用户名登录,弹出如图5.8提示:图5.8 账号冻结提示框与预期结果相符。以超级管理员身份登录进入本系统以后,修改用户名lx_snow的状态,改为激活,提交后退出,再以lx_snow登入系统,进入相应操作页面,无冻结提示框。与预期结果相符。2. 设置Session有效期设置session值为5分钟,重新部署启动服务器后,同时打开两个浏览器窗口,分别以用户名lx_snow和zxc用户名登录进去以后,只对lx_snow用户名登录进去的系统进行操作,另一个不操作,6分钟后,去zxc用户名登录进去的界面中点击相关,弹出如图5.7所示的提示框,与预期结果相符。5.3 本章小结本章主要描述子

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