为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

毕业设计—在线交易平台的设计与实现

2011-09-13 50页 doc 1MB 36阅读

用户头像

is_458781

暂无简介

举报
毕业设计—在线交易平台的设计与实现哈尔滨理工大学学士学位论文模板 哈尔滨理工大学 毕 业 设 计 题  目: 在线交易平台设计与实现 院、 系: 计算机科学与技术学院 计算机系 姓  名: 指导教师: 系主任: 2010年6月23日 哈尔滨理工大学毕业设计(论文)评语 学生姓名: 学号: 学 院:计算机科学与技术 专业:计算机科学与技术 任务起止时间: 2010 年 3 月 5 日至 2010 年 6 月 20 日 毕业设计(论文)题目:在线交易平台设计与实现 指导教师对毕业设计(论文)的评语: 指导教师签名: 指导教师职称: 评阅教师对毕业设计(论文)的评语...
毕业设计—在线交易平台的设计与实现
哈尔滨理工大学学士学位论文模板 哈尔滨理工大学 毕 业 设 计 题  目: 在线交易平台与实现 院、 系: 计算机科学与技术学院 计算机系 姓  名: 指导教师: 系主任: 2010年6月23日 哈尔滨理工大学毕业设计(论文)评语 学生姓名: 学号: 学 院:计算机科学与技术 专业:计算机科学与技术 任务起止时间: 2010 年 3 月 5 日至 2010 年 6 月 20 日 毕业设计(论文)题目:在线交易平台设计与实现 指导教师对毕业设计(论文)的评语: 指导教师签名: 指导教师职称: 评阅教师对毕业设计(论文)的评语: 评阅教师签名: 评阅教师职称: 答辩委员会对毕业设计(论文)的评语: 答辩委员会评定,该生毕业设计(论文)成绩为: 答辩委员会主席签名: 职称: 年 月 日 哈尔滨理工大学毕业设计(论文)任务书 学生姓名: 学号: 学 院:计算机科学与技术 专业:计算机科学与技术 任务起止时间: 2010 年 3 月 5 日至 2010 年 6 月 20 日 毕业设计(论文)题目:在线交易平台设计与实现 毕业设计工作内容: 1、熟悉使用数据库、Java程序设计语言、Hibernate、Struts、JavaScript、JSP等工具,阅相关资料;(3月5日 —— 3月20日) 2、完成各个模块设计,包含用户管理、首页面、商品浏览、购物车管理和订单管理等多个模块; (3月20日—— 4月10日) 3、各个模块编码工作; (4月10日—— 5月10日) 4、系统集成测试; (5月10日—— 5月20日) 5、完成论文,准备答辩 (5月20日—— 6月15日) 资料: 1.Bruce Eckel,陈昊鹏 译,JAVA编程思想(第4版),机械工业出版社,2007 2.(美)CAY S. HORSTMANN,GARY CORNELL,叶乃文,邝劲筠,杜永萍译,JAVA核心技术,机械工业出版社,2008 3.(美)CRAIG WALLS,RYAN BREIDENBACH,毕庆红,王军译,SPRING IN ACTION(第二版)中文版,人民邮电出版社, 2008 4. 闫术卓,杨强,STRUTS 2技术详解:基于WEBWORK核心的MVC开发与实践,电子工业出版社,2008 指导教师意见: 签名: 年 月 日 系主任意见: 签名: 年 月 日 在线交易平台设计与实现 摘 要 随着Internet技术的飞速发展,人们的生活和Internet的关系越来越密切,如何通过Internet抓住商机成为摆在人们面前的一个重要话题。电子商务代表着未来贸易方式的发展方向,其应用和推广将给社会和经济带来极大的效益。因此,一个能够实现在线购物功能的系统的开发就成了当务之急。 本购物系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能。 本文主要介绍该系统是如何实现,并详细介绍了系统分析、系统设计和数据库设计的一些思路和方法。另外,在系统设计这一章节作者列出了实现在线购物过程的详细流程。该系统凭借WEB服务器和客户的浏览器,利用电子工具高效率、低成本的特点,为客户提供交易平台、在Internet上发布商业信息,使用户可以查阅商品、搜索商品、订购商品,为客户提供全天候的、更好、更快的商务活动空间。 关键词 电子商务;在线购物;JavaWeb Design and Implementation of Online Trading Abstract With the fast development of the Internet technology, the relationship between people’s life and Internet is becoming more and more intimate. How to grasp commercial opportunity through the Internet is becoming an important topic. The E-Commerce represent the developing direction of the future type of trading. It’s application and popularization will bring great benefit to the society and economic. So,the development of a system which is able to implement online shopping is becoming an immediate necessity. The system has mainly provided users with the following functions: membership registration、shopping car management、goods search、information modify etc. It has also provided managers with goods management、customer information management、news management 、ad management and so on. It has been designed with B/S mode of three-tier structure, JSP technology in dynamic page design. Considering from the security and reusing code of the system, key codes has been secured by JavaBean technology. MySQL database has been used as the background database. The paper mainly introduced this, detailed introduced some thoughts and method of system analysis,system design and database analysis.Besides,in the chapter of system design,author listed the detailed algorithm of how to implement online shopping.The system rely on Web server and client’s broswer,making use of the electronic instrument’s characteristics of high-efficiency and low-cost,providing a trading flat for client,release bussiness information in the Internet,enable the user to look up, search,subscribe goods.Providing the client with full-time,better,faster space of commercial activity. Keywords E-Commerce;Online Shopping;JavaWeb 第1章 目 录 TOC \o "1-3" \h \z \u 摘 要 I Abstract II 第1章 绪论 1 1.1 选题目的和意义 1 1.2 国内外文献综述 2 1.3 论文研究内容 3 第2章 需求分析 4 2.1 引言 4 2.1.1 背景分析 4 2.1.2 术语定义 4 2.2 任务概述 5 2.3 可行性分析 5 2.3.1 社会可行性 5 2.3.2 经济可行性 6 2.3.3 技术可行性 6 2.4 系统功能分析 6 2.5 本章小结 6 第3章 系统设计 7 3.1 总体结构设计 7 3.2 系统架构设计 7 3.3 设计目标与用例分析 10 3.3.1 设计目标 10 3.3.2 用例分析 10 3.4 模块功能详细设计 11 3.4.1 权限管理模块功能设计 11 3.4.2 商品显示模块功能设计 15 3.4.3 交易模块功能设计 18 3.4.4 搜索模块功能设计 21 3.4.5 商品讨论模块功能设计 21 3.5 数据库数据设计 22 3.5.1 数据库主要实体类图 22 3.5.2 数据主要实体描述 24 3.6本章小结 26 第4章 系统实现 27 4.1 总体实现 27 4.2 后台逻辑实现 28 4.2.1 持久层实现 28 4.2.2 事务处理 28 4.2.3 业务逻辑层实现 29 4.2.4 控制层实现 29 4.3 主要模块功能实现 29 4.3.1 权限管理模块实现 29 4.3.2 商品显示模块实现 30 4.3.3 交易模块功能实现 30 4.3.4 搜索模块功能实现 31 4.3.5 商品讨论模块功能实现 31 4.3.6 其他功能实现 31 4.4 部分页面展示 32 4.5本章小结 35 第5章 系统测试 36 5.1 测试用例设计与测试用例的运行过程及测试结果分析 36 5.1.1 模块测试 36 5.1.2 集成测试 36 5.1.3 验收测试 37 5.2 评价 37 5.3本章小结 37 结论 38 致谢 39 参考文献 40 附录 41 第1章 绪论 1.1 选题目的和意义 随着中国市场经济的日趋成熟和计算机技术和网络技术的发展,人们对信息的获知程度和广度都提出了更高的要求。尤其是近年来,商品的种类变得五花八门,人们在采购货物的时候对商品类别、型号、用途的要求也各不相同,如果采用传统的将各种类别不同型号的商品都配送至每个可能需要该商品的地区,就会增加很多配送方面的成本;同时,买家必须到商店里面去亲自选购所需的商品也是传统购物方式的弊端。因此网上购物这种新的商业运营模式就被越来越多的商家运用到竞争中去,并得到了大多数客户的认可,这种基于浏览器、服务器实现的购物方式已经初具规模,一些在线购物网站的成立,改变了人们以往传统的购物观念。 图1-1是根据CNNIC(中国互联网络信息中心)公布的中国B2C电子商务发展来进一步分析目前的网上购物的现状(主要引用其中的关于进行网络购物原因的分析图表)。 图1-1网络购物原因调查图表 从图1-1可以看出网上购物选择节约时间和操作方便的分别占46.7%和44.2%,这说明随着生活节奏的加快,人们越来越希望拥有简单快捷的购物方式。因此,一个允许买家在家里就可以浏览商家发布的所有商品信息的在线购物系统将大大减轻商家的工作量、降低投资成本。 本系统是结合当前传统购物方式消耗大量人力物力的弊端、以当前市场上已经存在的B2C、C2C等在线购物网站为模型,开发出适合于大部分中小型企业以及个体用户的网上购物系统。该系统是在学习Java Web相关知识的基础上,熟悉MyEclipse开发环境并能熟练使用Java编程语言的同时,运用软件工程理论知识,开发出的一套基于Java Web的在线购物系统。在系统开发的过程中能够应用所学的知识,并促进本人更深入的学习Java Web的相关特性、积累更多MySQL的相关应用知识,这样不仅能将所学的书面知识和实际应用结合起来达到学以致用的目的,同时也为以后的工作和学习积累经验[1]。 1.2 国内外文献综述 在线交易平台即是电子商务中的一个分支,学界普遍认为,电子商务最早产生于60年代,发展于90年代。近30年来,计算机的处理速度越来越快,处理能力越来越强,价格越来越低,应用越来越广泛,这为电子商务的应用提供了基础;由于INTERNET逐渐成为全球通信与交易的媒体,全球上网用户呈级数增长趋势,快捷、安全、低成本的特点为电子商务的发展提供了应用条件;信用卡以其方便、快捷、安全等优点而成为人们消费支付的重要手段,并由此形成了完善的全球性信用卡计算机网络支付与结算系统,使"一卡在手,走遍全球"成为可能,同时也为电子商务中的网上支付提供的重要的手段;1997年5月31日,由美国VISA和Mastercard国际组织等联合指定的SET(Secure Electronic Transfer Protocol)即电子安全交易协议的出台,以及该协议得到大多数厂商的认可和支持,为在开发网络上的电子商务提供了一个关键的安全环境;自1997年欧盟发布了欧洲电子商务协议,美国随后发布"全球电子商务纲要"以后,电子商务受到世界各国政府的重视,许多国家的政府开始尝试"网上采购",这为电子商务的发展提供了有利的支持。 电子商务作为一种新型的交易方式,将生产企业、流通企业以及消费者和政府带入了一个网络经济、数字化生存的新天地;在电子商务环境中,人们不再受地域的限制,客户能以非常简捷的方式完成过去较为繁杂的商务活动,如通过网络银行能够全天侯地存取资金帐户、查询信息等,同时使得企业对客户的服务质量可以大大提高;电子商务能够规范事务处理的工作流程,将人工操作和电子信息处理集成为一个不可分割的整体,这样不仅能提高人力和物力的利用,也可以提高系统运行的严密性;在电子商务中,安全性是一个至关重要的核心问题,它要求网络能提供一种端到端的安全解决,如加密机制、签名机制、安全管理、存取控制、防火墙、防病毒保护等等,这与传统的商务活动有着很大的不同;商务活动本身是一种协调过程,它需要客户与公司内部、生产商、批发商、零售商间的协调,在电子商务环境中,它更要求银行、配送中心、通讯部门、技术服务等多个部门的通力协作,往往电子商务的全过程是一气呵成的。 关于电子商务方面,我参考查阅了《国际电子商务概论》、《电子商务营销案例》、《网上开店行销指南》、《电子商务导论》、《电子商务万事通》、《电子商务基础》、《电子商务教程》、《电子商务原理》、《中国电子商务发展研究报告》等电子书籍、文献,还查看了"电子商务直通车网"和"电子商务研究网",这些的内容涵盖了电子商务的产生、发展、概念、性质、目标和任务、作用、地位、特点、功能并提供了许多相关电子商务的案例。让我了解到了近现代电子商务理论和实践的基本内容和发展状况,深刻认识到电子商务的重要性,为论文的写作奠定了理论基础。 1.3 论文研究内容 本论文主要研究在线交易平台如何设计并使用JavaWeb实现。 现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节,这样才能使得在电子交易时避免不必要错误发生。本系统将使用HTML、JSP等技术来编辑网页,并运用Hibernate把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站,以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。 第2章 需求分析 2.1 引言 本系统使用Struts2+Hibernate3+Ajax+J2EE技术完成的一个网上在线购物系统,模仿新豆网(xindou.com)制作完成,该项目主要完成在线购物平台的设计与实现。 2.1.1 背景分析 电子商务的出现,是网络经济对我们现存经济社会的体制挑战,尤其是对企业传统的宣传、经营模式和理念将会造成强烈的冲击。企业运营模式的各种问题都一个个的滋生出来,给企业带来了经营上的各种匮乏,乃至企业覆灭的沉重代价;如果企业能有效解决这些问题,在网络构建全球市场竞争的平台上,企业的优势则会无限地放大,使企业从降低成本、有效商业信息、高效商业决策和加快产品流通等方面都会得到长足的发展。 真正的电子商务解决方案应是基于客户网下现有的资源,为客户建立一整套的网上商业模式。而建立网站只是用技术的手段使已定的商业模式在网上得以实现。 面对对网站开发拥有不同知识层面的客户,项目的负责人对用户需求的理解程度在很大程度上决定了此类平台实现的成败。因此如何更好地的了解、分析、明确用户需求,并且能够准确、清晰以文档的形式表达给参与项目开发的每个成员,保证开发过程按照满足用户需求为目的正确项目开发方向进行,是每个网站开发项目管理者需要面对的问题,也是需求分析的目的所在。 2.1.2 术语定义 1. Java是由Sun Microsystems公司于1995年5月推出的一种程序设计语言和该语言平台的总称[2]。 2. 面向对象是程序设计中采用封装、继承、抽象、多态等设计方法[3]。 3. servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 4. JSP是Java Server Pages的简写,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术。 5. AJAX是Asynchronous JavaScript and XML的简写,异步JavaScript和XML,AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术[5]。 6. Struts最早是作为Apache Jakarta项目的组成部分,是目前非常流行的一种动态web开源框架技术[6]。 7. Hibernate是一个开放源代码的对象关系映射框架,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 8. Browser/Server,浏览器/服务器,简称B/S。 9. Client/Server,客户端/服务器,简称C/S。 10.Business to Business(B2B)商家对商家,电子商务的一种业务形式。 11.Business to Consumer(B2C)商家对顾客,电子商务的一种业务形式。 12.Consumer to Consumer(C2C)顾客对顾客,电子商务的一种业务形式。 2.2 任务概述 任务目标:实现在线交易网站,可以使用户方便,轻松的进行购物(买家)、讨论、评价等和发布自己的商品(网站使用者)、信息、公告等。 用户特点: 买家特点:买家都喜欢便宜,关心商品的质量,怕买到的是假货、次货,但是网络购物只能看图片,看评论,看说明,看买过的人评价。这方面要给买家提供详细的信息。图片有大中小缩略图、商品各种评价、打分、讨论、排行等,给买家一个最好的用户体验。 卖家特点(站长):及时的宣传自己新商品,热卖商品等,让用户知道自己的商品,对于某些商品尽快脱销,需要促销活动等,都需要使买家尽快知道这些消息等。这方面要给卖家(站长)提供大量新闻,广告信息(宣传自己商品),在首页使用公告,排行等方式醒目的显示给买家。 2.3 可行性分析 可行性分析主要包括社会可行性、经济可行性、技术可行性。 2.3.1 社会可行性 首先从当前社会商业市场运作情况来看,商业企业在运营的过程中,经常会受到以下一些条件的限制: 1. 产品的宣传受到限制,采购商或顾客只能通过上门咨询、电话沟通等方式进行各种信息的获取,受到一定的时间与物理空间的局限并且成本较高,庞大的商业经济周转。 2. 复杂的产品周转渠道:从看样品、谈价格到支付货款等一系列的产品周转渠道过于复杂,企业与客户之间缺乏一个全面的沟通与快捷运营的平台系统;商业企业中根据季节的变化,热销商品在销售高峰到来时货源紧张,企业需要实时了解商品的销售情况,保证热销商品的要货满足率。 基于商家在传统销售模式中遇到的以上困难,作者拟开发在线购物系统。商家在使用该系统后,只需将需要推广的产品信息录入数据库,即可达到向购买者推销的目的,节省了大量的人力资源。同时可以根据在线购物的多少、实时查看库存信息,实现商品周转渠道的最简洁化。因此,在社会方面,本系统的开发是可行的。 2.3.2 经济可行性 由于使用开源框架开发本系统,且在windows操作系统下完成本系统的开发,所以开发成本仅为作者的时间,并未投入其他物质成本。且在传统的销售模式中,企业要投入大量的人力物力用于商品的配送,并且还不能有效做到合理的供货。而本系统为商家提供了随时随地查看所有商品信息的功能,是商家在短时间内充分了解当前市场货物的供需情况,从而制定合理的配送计划,达到配送成本最小化、供货效率最大化。这样就能为企业节约大量的人力资源投入,本系统的未来前景美好。所以在经济方面,该系统的开发是可行的。 2.3.3 技术可行性 Struts2、Hibernate3、Ajax、JSP等技术比较成熟,常见功能可以轻易实现,且对windows系统有良好的支持,开发环境容易搭建,后期部署方便;该系统开发完成后在1024*768的浏览器下能够达到最佳的浏览效果,在其他分辨率下亦不影响系统的正常功能;另外需要浏览该系统的计算机联入Internet,而这些方面在当前条件下是完全能够实现的,所以在技术方面,该系统的技术是可行的。 2.4 系统功能分析 商家具有通过本系统发布商品、发布公告、了解商品销售情况、销售趋势,与买家互动等功能。满足卖家快速及时的出售自己商品的需求。 买家具有注册、方便的浏览、查询、购买、讨论和评价商品等功能。满足买家购买到自己喜欢合适的商品需求。 根据在线购物的逻辑过程,同时参考、分析目前市场上已有的在线购物网站,本系统的主要功能需求分为权限管理、商品展示、交易、商品搜索和商品讨论五大模块。各个功能均参考当前互联网主流门口网站实现的功能。 1.​ 权限管理模块包含登录、登出、查看用户信息、以及增删查改的功能; 2.​ 商品显示模块包含商品的分类查看、查询、订购功能; 3.​ 交易模块包含购物车中商品的添加、删除,修改,订单生成等功能; 4.​ 商品搜索模块包含根据商品名称、分类、品牌搜索详细商品信息功能; 5.​ 商品讨论模块模拟论坛实现的,包含商品讨论,打分,关注等功能。 2.5 本章小结 本章主要介绍了背景分析、术语定义、可行性分析与功能分析,从需求上确定了系统开发的主要功能模块,从技术上确定了系统需要用到的编程语言和开发环境等,为后续设计与实现奠定基础。 第3章 系统设计 本章的总体目标是将上一章需求分析阶段得到的功能需求转换为详细的业务逻辑模型,具体将从系统的结构设计和数据库设计两方面进行设计,即根据上一章节中需求分析的”做什么”,确定系统应该”怎么做”。 3.1 总体结构设计 系统结构和功能是系统设计的核心部分,通过系统结构图可以清楚的看出整个系统的结构。针对每个结构模块分别做分析,为以后的设计和实现打下基础。根据功能需求,根据在线购物的逻辑过程,同时参考、分析目前市场上已有的在线购物网站,本系统的主要功能需求分为权限管理、商品展示、交易、商品搜索和商品讨论五大模块。 本系统开发的软件模式选择的是快速原型模式,因为本系统模拟新豆网实现(主要模拟其业务流程),所以其原型选择新豆网,大体功能(如商品交易,查询等)即按其实现,对于当前新豆网不尽人意的地方,模拟当前互联网其他网站主流实现方法实现。 总体功能结构图如图3-1所示。 3.2 系统架构设计 本系统采用4层架构的方式进行设计与实现,主要包括:表现层、控制层、业务层、持久层[7],如图3-2所示。 表现层:主要负责用户交互和结果显示,交易系统和管理系统有不同的 URL 入口界面。该层业务展示主要使用JSP语言,为了加强用户体验度,使用JavaScript和Ajax异步与服务器交互,使用户“无等待”交互。该层的美工布局使用div+css方式,使界面美观舒适,便于观看与操作。 控制层:主要负责系统的访问控制、数据处理和注销,是系统的核心控制单元。控制层通过系统描述来组织工作。 该层主要使用Struts2的过滤器作为核心控制器,控制请求跳转与结果页面渲染,有些功能使用拦截器实现,这种注入的方式方便扩展,加强了代码的重用性,如权限判断等的。 业务层:实现了交易系统和管理系统的主要业务逻辑,是系统主要的运算单元。 该层主要使用service业务组件实现,即无状态JavaBean,向后台service调用持久层的dao方法操作数据库,向前台service提供接口供Struts2的action调用。 持久层:实现了静态数据和数据库数据的持久化管理,为业务层提供数据服务,是系统进行数据操作的统一界面。 该层使用Hibernate管理JavaBean,使用面向对象的方法操作数据库,为后期维护与扩展提供方便[11]。 全局:使用log4j记录日志,xml文件作为配置文件,使用JavaMail处理所有邮件信息(由于没有邮件服务器,该处模拟操作)。 图3-1 总体功能结构图 图3-2 概要功能架构图 具体每层使用到的技术如图3-3所示,Ajax使浏览器与服务器交互,并传递数据,所以Ajax同属于显示层与控制层。由于显示层使用到了Struts的显示标签,所以Struts同属于显示层与控制层。 持久层虽然大部分使用Hibernate操作,但小部分功能使用JDBC灵活方便,所以部分持久层使用JDBC实现,其数据库连接使用数据库连接池,由JDK提供的线程池实现。 图3-3 技术架构图 3.3 设计目标与用例分析 3.3.1 设计目标 本系统在设计时应该满足以下几个目标: 1. 采用人机对话的操作方式,界面设计美观友好。 2. 信息查询灵活、方便、快捷、准确、数据存储安全可靠。 3. 全面展示商城内所有商品,并可展示最新商品及特价商品。 4. 用户可选择多个商品进行比较。 5. 会员可以随时修改自己的会员资料。 6. 实现网上购物。 7. 各种商品排行,方便顾客了解本商城内的商品信息及帮助企业领导者做出相应的决策。 8. 查看商城内的公告信息。 9. 用户随时都可以查看自己的订单。 10. 对用户输入的数据进行严格的数据检验,尽可能排除人为的错误。 11. 系统最大限度地实现了易维护性和易操作性。 12. 系统运行稳定、安全可靠。 13. 各处交易安全,不泄露用户资料。 3.3.2 用例分析 未登录或登录但未通过验证的用户具有登录、注册、浏览新闻公告、浏览论坛帖子、查看各种商品排行,浏览商品和商品详细信息、搜索商品等功能,用例图如图3-4所示。 图3-4 未登录或登录用户用例图 已登录并通过验证的用户具有除注册外其他所有非登录用户的功能,并额外具有论坛发帖、查看个人信息、个人资料修改、站内发信、操作购物车、查看订单、修改订单、安全登出、商品打分等功能,用例图如图3-5所示。 图3-5 登录用户用例图 管理员具有普通会员的所有功能,且额外具有新闻管理,广告管理,商品管理,会员管理等功能,用例图如图3-6所示。 图3-6 管理员用例图 3.4 模块功能详细设计 本系统分销售模块和系统管理模块,每个模块又有若干个子模块构成,其中销售模块主要包括:商品展台、购物车、会员管理、新闻管理、注销登录等子模块。系统管理模块主要包括:商品管理、订单管理、会员管理、新闻管理、注销登录等子模块。具体的模块功能设计如下。 3.4.1 权限管理模块功能设计 用户权限功能用例图如图3-7所示 图3-7 权限模块用例图 主要用例说明: 用例名称:验证邮箱 用例描述:没有通过验证的用户输入验证码,激活邮箱验证。 前置条件:用户登录且未通过验证或用户注册后未验证。 后置条件:用户通过邮箱验证并加大权限。 基本事件流: 1.​ 用户登录注册邮箱,取得验证码。 2.​ 用户处于验证页面,填入验证码,点击提交。 3.​ 验证码不正确,返回2;验证码正确,执行后置条件。 其他事件流:无。 异常事件流:跳转到错误页显示页面,提示错误信息。 注释:无。 主要功能详细设计说明: 1. 注册功能:提供浏览者注册功能,注册之后可以在网站选购商品到购物车,否则只能浏览商品信息而无法下达订单。页面使用Ajax技术,动态判断用户名是否已被占用,密码,邮箱等是否符合格式等,友好的提示用户,防止用户提交信息失败从而重新填写大量的信息。注册结束后在数据库中存储注册信息,以加密的方式存储,使用不可逆加密md5信息摘要与base64技术。用户注册序列图如图3-8所示。 2. 注册认证:激活会员邮箱,只有激活邮箱的会员才能正常使用会员功能,否则只能等待激活邮箱。注册后,会向会员邮箱发送一个邮件,邮件中含有激活码,该激活码使用uuid生成。激活成功后可以正常使用会员功能。 3. 用户登录:针对已注册的用户设置,每个访问者一次只能够登陆一个账户。登录成功后返回到主页面查看商品,失败则重新填写。用户登录序列图如图3-9所示。 4. 登出:注册用户单击“注销”后实现安全退出。点击注销后清空session,清空cookie,返回到登录页面。 图3-8 用户注册序列图 图3-9 用户登录序列图 6. 找回密码:当已注册用户忘记密码时可根据用户名和验证邮箱找回密码,也可以通过密码提示问题和答案找回密码,不论何种方式找回密码,只能以重设新密码的方式重置密码,无法获得旧密码,因为为了安全性考虑,加密方式使用了MD5信息摘要这种不可逆的技术。 7. 权限判断功能:根据是否登录和是否通过验证邮箱判断用户权限,根据权限进行操作,如果权限不够,则跳转到对应页面。该功能使用Struts2拦截器实现,在需要限定权限的功能前注入拦截器,如果权限足够则通过,不足则返回到登录界面,如果用户登录后权限仍然不足,则返回到验证邮箱页面。权限判断详细活动图如图3-10所示。 图3-10 权限判断活动图 3.4.2 商品显示模块功能设计 商品显示模块功能及用例图如图3-11所示,详细功能说明如下: 1. 商品浏览:网站的首页显示出部分特价商品、新上架商品、促销商品、店长推荐商品、关注商品榜、网站公告等,同时列出了网站发布的所有商品类别导航树。存储使用request属性范围,所有信息以集合的方式存储在request中。当用户浏览1级分类时,使用树形菜单形式显示2级分类和3级分类。 图3-11 商品显示模块用例图 2. 商品详细信息:根据商品的id,查询数据库,将商品的所有信息查询并显示给用户,具体交序列如图3-12所示。 图3-12 商品明细序列图 3. 商品分类显示:根据商品的三级类别,显示商品的概要信息,有分页及排序功能,排序可按照名称,价格,上架时间,人气等。分类显示序列图如图3-13所示。 图3-13 分类显示序列图 4. 根据商品订购信息展示销售排行榜:根据购买者下订单的情况,展示出当前网站中最畅销的商品信息。首页中显示出各种商品的排行榜,以List集合的方式存储在request中。 5. 新品上架:根据数据库信息显示出最近一周内上架的商品信息。首页中显示出各种新商品的排行榜,以List集合的方式存储在request中。查询时查询一周内出现的新商品。 6. 动态首页:根据时间的不同,网站首页将放置反映不同季节或不同销售目的的图片和广告等。使用JavaScript,动感的显示一些广告,新闻等。 7. 首页显示动态新闻:在购物网站的首页按照时间录入先后顺序显示最近的新闻。在页面左上角,显示近期公告。 3.4.3 交易模块功能设计 交易模块功能及用例图如图3-14所示说明: 图3-14 交易模块用例图 主要用例说明: 用例名称:操作购物车 用例描述:已登录并通过验证的用户通过此用例对自己的购物车进行增删改查操作。 前置条件:用户登录并通过验证。 后置条件:更新购物车中的数据。 基本事件流: 1. 用户点击购物车按钮,显示原有购物车详单信息。 2. 用户操作购物车,删除商品,修改购物车内商品数量,确定提交。 3. 执行后置条件。 其他事件流:登录系统并通过验证后,可以浏览商品并点击购买按钮,则商品添加到购物车中并显示购物车详单。 异常事件流:跳转到错误页显示页面,提示错误信息。 注释:无。 用例名称:商品交易 用例描述:已登录并通过验证的用户确认购买商品。 前置条件:用户登录并通过验证,购物车中有商品。 后置条件:系统更新订单信息,提示站长发货。 基本事件流: 1. 用户处于购物车详单页面,点击付款按钮,跳转到订单生成页面。 2. 用户填入或选择收货地址,填写买家说明,选择付款方式与银行,点击去付款按钮,跳转到模拟付款页面。 3. 付款结束,跳转到订单详单页面。 4. 执行后置条件。 其他事件流:订单生成与付款页面,用户随时可以点击“返回”按钮,返回到购物车详单页面。 异常事件流:跳转到错误页显示页面,提示错误信息。 注释:无。 详细功能设说明: 1. 购物车功能:已登录的会员选中的商品都将暂时存放在购物车中,可通过查看购物车修改购买数量。如果用户登录了,且权限足够,则点击添加到购物车时,使用cookie添加信息,不访问服务器,而只将商品的id存储在cookie中,操作cookie使用JavaScript实现,具体序列图如图3-15所示。 图3-15 修改购物车序列图 2. 订单生成功能:根据购物车中的信息,生成订单。生成订单时根据cookie中的id信息,查找数据库得到商品List,根据List计算价钱,生成订单,具体交互图如图3-16所示。 图3-16 订单生成交互图 3. 付款功能:根据订单,用户信息,付款方式等付款,该处不能连接真正的网上银行,属于模拟操作。 4. 用户管理自己的收货地址,用户可以有5个收货地址,使用时可以选择或重新填写。在付款时选择收货地址、付款方式和邮递方式。 3.4.4 搜索模块功能设计 图3-17 商品搜索模块用例图 商品搜索模块包含根据商品名称、分类、品牌搜索详细商品信息功能,具体功能及用例图如图3-17所示。 1. 根据输入的商品名称搜索商品,在主页上即有搜索输入框。主页头部使用Ajax添加搜索框,以下拉列表框形式展示商品类别,在搜索时根据类别,商品名搜索。始终显示在所有的页面之上。 2. 根据选择的商品类别、品牌等,按对应方式搜索商品,同理如上。 4. 列表的方式显示出商品的全部类别,品牌等,同理如上。 3.4.5 商品讨论模块功能设计 图3-18 商品讨论模块用例图 商品讨论模块功能及用例图如图3-18所示: 1. 给已经成功购买过的商品打分。 2. 以论坛的形式讨论商品,热门商品开辟专区。 3. 按照用户发帖数量、质量,版主可以给予评分,按照用户积分升级,获得头衔等。 由于该系统目的是在线购物,所以商品讨论简要设计并实现,如果做一个论坛(bbs),该工程不小于电子商务,所以避免主次分离,侧重点放到了商品交易部分,而讨论简要设计与实现。 3.5 数据库数据设计 3.5.1 数据库主要实体类图 数据库的表与实体类对应,字段与属性对应,此处涉及的所有与数据库有关的类都属于POJO类,所以没有业务方法,只有get和set方法[12]。以下列出主要实体类和实体类的主要属性说明。 商品关联实体类图如图3-19所示,详细说明如下: 图3-19 商品关联实体类图 Product商品实体:商品名,商品类别,商品顶级id,是否推荐,品牌,型号,价格,赠送豆豆,是否促销,抢购价,限购件数,截止时间,质保,备注,上架时间,简介,规格,图片,颜色,市场价格,购买人气,浏览人气,总分,外观分,价格分,性能分。 Photo图片实体:图片、说明。与商品一对一的关系。 Price价格实体:市场名、价格。与商品一对一的关系。 Color颜色实体:颜色名称、图片。每个商品可以有多个颜色的图片,与商品多对一的关系。 Category分类实体:分类名、父类id、分类说明。每个分类中可以有多个商品,每个商品若属于某三级分类,必属于其父级分类,所以与商品多对多关系。 Orders订单实体:下单时间,状态,商品总金额,支付方式id,送货方式id,运费,手续费,订单总金额,使用豆豆数,应付金额,收货id,是否需要发票,最佳收货时间,发票抬头,用户留言,物流公司名称,物流单号。一个订单中可以有多个商品,与商品一对多的关系。 Brand品牌实体:品牌英文名,品牌中文名,品牌大图,品牌小图,品牌介绍。一个商品对应一个品牌,与商品一对一关系。 订单关联实体类图如图3-20所示,详细说明如下: 图3-20 订单关联实体类图 Sendway送货方式实体:送货方式,送货描述,基本费用,到货时间。一个订单一种送货方式,与订单一对一关系。 Payway支付方式实体:支付名称,支付介绍,手续费。一个订单一种支付方式,使用一次付清方式,与订单一对一关系。 ReceiveAddress收货地址实体:收货人姓名,所在地区省,市,区,街道地址,邮政编码,电话号码,手机。一个订单对应一个收货地址,一对一关系。 User用户实体类:主要属性有用户名,密码,性别,昵称,Email,手机,联系电话等。一个用户可以有多个订单,所以与订单一对多关系。 用户关联实体类图如图3-21所示,详细说明如下: ReceiveAddress收货地址实体,一个用户可以拥有多个收货地址,与用户多对一关系。 Post主题实体:主要属性有主题类型、是否精华帖、执行精华的用户id、是否加亮显示、加亮显示颜色、加亮的用户id、是否置顶、置顶结束日期、置顶版块区、置顶的用户id、版块id、是否投票、已投票的用户等。一个用户可以发表多个主题,与用户多对一关系。 Transaction交易实体:商品id,颜色id,数量,金额小计,订单id。与用户多对一的关系。 Message消息实体:发送用户名、接收用户名、标题、内容、是否保存到发件箱、发送时间、消息状态、消息类型。与用户多对一的关系。 图3-21 用户关联的实体类图 3.5.2 数据主要实体描述 以下列出了一些重要的数据表与表中的主要字段。 商品表(参见表3-1),商品价格表(参见表3-2),分类表(参加表3-3),订单表(参见表3-4),会员表(参见表3-5),公告表(参见表3-6)。 表3-1 Product 字段描述 字段名 类型 允许为空 Java类型 说明 ID id int Integer 主键,自增1 商品名称 pname varchar(50) String 类别3级ID cid int Integer 外键,多对一 类别顶级ID pcid int Integer 是否推荐 recommend boolean √ Boolean 0:否(缺省) 1:是 品牌ID bid int Integer 外键,多对一 型号 ptype varchar(30) √ String 价格 price double Double 赠送豆豆 prisentation int √ Integer 缺省:0 是否促销 promotion boolean √ Boolean 0:否(缺省) 1:是 表3-2 Price 字段描述 字段名 类型 允许为空 Java类型 说明 ID id int Integer 主键,自增1 商品id pid int Integer 外键,多对1 商城名 shopname varchar(30) String 商城价格 shopprice double Double 表3-3 Category 字段描述 字段名 类型 允许为空 Java类型 说明 ID id int Integer 主键,自增1 分类名称 cname varchar(20) String 父类id parentid int Integer 缺省:0 分类说明 description varchar(200) √ String 分类图片 photo blob √ Blob 分类类型 ctype bit Integer 缺省1 表3-4 Orders 字段描述 字段名 类型 允许为空 Java类型 说明 ID id varchar(15) yyMMddHHmmssSSS String 主键,按日期格式生成 下单时间 ordertime datetime Date 状态 state varchar(30) String 商品总金额 pmoney double Double 用户id uid int Integer 外键,多对一 支付方式id pid int Integer 外键,多对一 送货方式id sid int Integer 外键,多对一 表3-5 User 字段描述 字段名 类型 允许为空 Java类型 说明 ID id int Integer 主键,自增1 用户名 username varchar(30) String 密码 password varchar(40) String 性别 sex boolean Boolean 0:男(缺省) 1:女 昵称 nickname varchar(30) √ String Email email varchar(50) String 手机 mobile varchar(13) String 表3-6 Anncounce 字段描述 字段名 类型 允许为空 Java类型 说明 ID id int Integer 主键,自增1 用户名 username varchar(30) String 公告类型 atype varchar(10) √ String 公告标题 title varchar(50) String 标题颜色 titlecolor varchar(20) √ String 发表时间 sendtime datetime Date 内容 content text String 3.6本章小结 本章详细的设计了系统的各模块的功能以及数据库的设计和表的结构,确定了各个功能实现的方法,为下一章的代码实施提供良好的逻辑模型。 第4章 系统实现 4.1 总体实现 系统实现使用Struts2框架,应用MVC分层设计思想,使用Model2的形式实现各个功能及显示,流程如图4-1所示。 M:模型,使用JavaBean方式,将数据库每个表对应一个POJO类,使用Hibernate操作持久层数据库,并将操作封装到每个类的DAO中,供上层service调用[4]。 V:显示层,主要使用tiles框架实现,作为Struts2的插件,titles完美的应用了标签+布局的方式,大大减少了重复代码,并易于维护和修改,体现了软件开发中的“开闭原则”和分层思想。 C:控制层,控制层使用Struts2,Struts2应用过滤器方式实现其控制,每个request请求发送给服务器时,先通过过滤器,找到对应的操作类,在通过配置文件中指定的位置,渲染结果显示给用户,提供了很强的维护性与扩展性。 Ajax:页面中大量使用Ajax交互技术,提高了用户的体验度,使用户操作更加方便,使用更加舒适,虽然与服务器的交互增加,但是减少了页面跳转与重定向的次数,大大增加了用户体验[5]。 前台页面主要由JSP实现;美工使用CSS;页面控制使用JavaScript;异步交互使用Ajax;页面框架使用property。 根据上一章节的功能分析中分析各个页面中的数据。对于页面中重复出现的数据,此处未必全部列出,由于页面中大量使用Ajax技术,使用异步交互,提高用户体验,所以显示uri的页面非常少,也正是本系统的目的。用于Ajax交互的jsp页面由于过于繁多且大量使用tag标签技术,因本系统非美工系统,故此处未提供全部.tag和.jsp文件。只列出含有uri的页面,参见表4-1所示。 表4-1 UI页面 结构模块 页面名 数据项 主页 homepage/index.action 主页 homepage/announce.action 网站公告内容显示页 权限管理 authorize/login.action 登录页面 authorize/registerOne.action 注册页面 authorize/registerTwo.action 邮箱验证页面 authorize/registerThree.action 验证成功跳转页面 商品浏览 category/brand.action 按品牌浏览页面 category/rootcategory.action 按一级分类浏览商品页面 category/productInfo.action 商品详细信息页面 category/thirdcategory.action 按三级分类浏览商品页面 续表4-1 交易 cart/cart.action 显示购物车详细信息页面 cart/pay.action 订单付款页面 页头页脚 invariable/head.action 所有页面的页头 invariable/foot.action 所有页面的页脚 论坛 bbs/bbs.action 论坛讨论页面 bbs/userInfo.action 用户信息设置页面 搜索模块 search/ categorylist.action 按类别搜索商品页 search/ promotion.action 按价格搜索商品页 search/brandlist.action 按品牌搜索商品页 search/search.action 按名称搜索商品页 4.2 后台逻辑实现 4.2.1 持久层实现 持久层使用DAO分层模式,每个实体类均有其“实体名+Dao”的类作为其操作底层数据库的方法,操作方法使用Hibernate操作[9]。数据库连接通过Hibernate工厂获得,使用线程池[15],部分代码参见附录C。 4.2.2 事务处理 事务处理使用单线程Session方式,Session是Hibernate的事务会话,每次会话都采用新的Session,因为Session轻量级,占用资源小,并且可以确保事务的原子性与一致性[9]。 Session工厂属于重量级,创建与销毁占用资源大,所以Session工厂使用单例模式创建,只创建一次,使用结束后不销毁[11]。 Session获得方法如下: private static final ThreadLocal threadLocal = new ThreadLocal(); public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); } return session; } 4.2.3 业务逻辑层实现 业务层使用service分层模式,调用持久层dao方法操作实体,由于service构造繁琐,故service使用高级工厂模式创建其示例[10],主要代码如下: package tarena.service; public class ServiceFactory { public static Object newInstance(String interfaceName) { try { StringBuilder sb = new StringBuilder(); sb.append("tarena.service.impl."); sb.append(interfaceName.substring(1)); Class clazz = Class.forName(sb.toString()); return clazz.newInstance(); }
/
本文档为【毕业设计—在线交易平台的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索