资源描述
学号:1243353189河南大学2016届本科毕业论文校园购网上商城设计与实现Design and Implementation of Campus Shopping Online论文作者姓名: 苏晓栋 作 者 学 号: 1243353189 所 在 学 院: 计算机学院 所 学 专 业: 软件工程 导师姓名职称: 袁科(讲师) 论文完成时间: 2016年 04月29日 2016年04月29日河南大学2016届毕业设计(论文、创作)开题报告学号1243353189姓名 苏晓栋导师姓名职称 袁科(讲师) 开题时间2015年12月01日课题题目校园购网上商城设计与实现课题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析: 1.目的: 校园购网上商城是一个较为综合的网上商城,主要是面向广大的学生用户。该商城的商品大多为学生需要,学生可以很方便地发现自己喜欢的商品。用户可以注册登录浏览商品,发现自己想要的商品后可以加入购物车生成订单。 2.意义:校园购网上商城的开发用到了大学所学课程以及市面上比较流行的相关资料。校园购类似于其他主流的网上商城,用户可以分类查询自己需要的商品,但也排除了学生需求量小的商品,更加有助于用户快速发现自己喜欢的商品。同时,校园购还增加了二手商品和美食外卖分类,经济基础较弱的学生群体可以在这里发现物美价廉的商品,用户还可以在这里订到可口的外卖。 该网站的主要用户是学生群体,以方便学生购物和生活为宗旨,为广大学生提供贴心的服务。 3.现状:国内开发网站一般使用的技术为java web,也有用.NET等技术,国内外较为出名的网站也有使用PHP等技术。研究目标、研究内容和准备解决的问题,拟采取的方法、技术或设计(开发)工具:1 目标: 设计出在功能上符合广大学生用户购物需求的网站。2 内容: 功能上(1) 游客浏览商品(2) 实现用户的登陆注册(3) 用户添加商品到购物车生成订单(4) 实现管理员的登陆(5) 管理员操作。3 准备解决的问题: 准备使用Java web的SSH作为开发框架,用My Eclipse作为开发工具。预期成果:1源程序2毕业论文进度计划与阶段要求:(1)12月1日12月31日:查找资料、确定毕业设计题目,编写开题报告。 1月1日:将开题报告发送到导师邮箱。 1月2日-1月10日:导师根据开题报告下达任务书。(2)1月11日4月2日:根据任务书搜集素材、进行初步的毕业设计。 4月3日:将毕业设计阶段性成果发送到导师邮箱。(3)4月3日4月9日:根据导师的建议和指导,修改毕业设计,编写论文。 4月10日:将中期检查表发送到导师邮箱。(4)4月11日4月28日:根据导师的建议和指导,修改毕业设计和论文。(5)4月29日:将设计和论文终稿发送到导师邮箱。开题前收集的资料和参考文献(5-8种)1 李兴华. Java Web 开发实战经典(第四版). 清华大学出版社, 2012年3月.2 李刚. Struts 2.x权威指南(第3版). 电子工业出版社, 2012年10月.3 孙卫琴. 精通HIBERNATE:JAVA对象持久化技术详解(第2版). 电子工业出版社,2012年2月.4 毕庆红. spring in action(第二版)中文版. 人民邮电出版社, 2008年10月.5 帕奇维. 深入理解My SQL核心技术. 中国电力出版社, 2009年9月.6 冯洪海. java面向对象程序设计基础教程. 清华大学出版社, 2011年5月.指导教师对开题报告的意见:同意按开题报告的题目和设计思路开题。指导教师签名: 2016年01月10日河南大学2016届毕业论文(设计、创作)任务书(导师根据学生的开题报告填写)题目名称:校园购网上商城设计与实现学院计算机学院学生姓名苏晓栋所学专业软件工程学号1243353189毕业论文(设计、创作)要求1设计内容实现提供大量学生群体喜欢以及需求的商品,学生可以订外卖,还可以在二手市场找到物美价廉的商品。2基本要求使用My Eclipse启动Tomcat服务器后,能够实现以下内容:(1)用户在线浏览商品并可以完成注册登录。(2)用户发现自己喜欢的商品后可以加入购物车生成订单并选择不同的银行完成支付。(3)管理员能够登陆后台管理系统,对商品以及用户信息进行相应的操作。3要解决的问题设计出符合学生购物习惯的购物模式,增加方便学生购物生活的设计,学生们可以快速找到适合自己的商品。4要求提交的成果(1)毕业设计源程序(2)论文指导教师签名:2016年01月 10 日河南大学2016届毕业设计(论文、创作)中期检查表(导师只填写评语,其他由学生填写)题目名称:校园购网上商城设计与实现学院计算机学院学生姓名苏晓栋所学专业软件工程学号1243353189一、毕业设计(论文、创作)进展情况 经过初步设计,搜集了大量资料以及阅读相关技术书籍,网页功能已基本实现,相关重点模块儿正在攻克难点,经过不懈努力,现在正在实现细节优化错误。二、毕业设计(论文、创作)存在的问题及解决方案存在的问题:网页排版不符合预期效果功能细节实现不好。解决方案:从网上书籍中查阅资料以及与导师共同探讨。三、学生本人对毕业设计阶段所做工作及进展情况的评价毕业设计在实际开发过程中遇到了很多问题,或大或小,但经过不懈努力以及导师的帮助,都已解决。毕业设计的开发进程达到预期,基本功能也都一一实现。但由于只是初步开发,网站还存在种种不完美的地方,所以还需要进一步优化达到预期效果。四、指导教师对学生毕业设计(论文、创作)中期检查的评语根据该生提交的毕业设计成果,以及该生和导师交流的情况,同意该生通过中期检查。允许该生根据本人搜集的参考资料和已经完成的设计成果,开始整理毕业论文文档。指导教师签名 2016年 04月 10 日河南大学2016届毕业论文(设计、创作)教师评阅成绩表学院名称:计算机与信息工程学院学 号1243353189 姓名苏晓栋专业 软件工程指导教师 袁科(讲师)教师评阅平均得分88论文题目校园购网上商城设计与实现指导教师评语及得分指导教师评语该生的选题有实际意义,按时完成了所要求的功能。论文叙述条理较清晰、详略较得当,是一篇良好的本科论文。评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分127995289指导教师签名 2016年04月29日评阅教师评语及评分评阅教师评语该生论文结构较合理,论文语句较流畅,思路较清晰,表达较准确,是一篇良好的本科论文。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述满分15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分127885287评阅教师签名 2016年05月02日此表由教师填写河南大学2016届毕业论文(设计、创作)综合成绩表学号1243353189姓名苏晓栋所在学院 计算机学院答辩委员会评语及评分答辩委员会评语该生答辩过程中思路较清晰,反应敏捷,论文结构较合理,条理清楚,达到本科毕业设计和毕业论文要求的标准,经答辩小组评议,同意通过论文答辩。答辩委员签字(4名以上): 2016年05月08日评分项目分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分1321163686答辩委员会主任签字: 2016年05月08日毕业论文(设计、创作)成绩综合评定(百分制): 87 分(教师评阅表平均成绩占40%,答辩成绩占60%)综合评定等级(优、良、中、差):良备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。河南大学本科生毕业论文(设计、创作)承诺书论文题目校园购网上商城设计与实现姓 名苏晓栋所学专业软件工程学 号1243353189完成时间2016年04月29日指导教师姓名职称袁科(讲师) 承诺内容:1本毕业论文(设计、创作)是学生 苏晓栋 在导师 袁科 的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名:2016年 04 月 29 日 2016 年 04 月 29 日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。目 录摘 要IABSTRACTII第1章 绪 论11.1 课题来源11.2 课题背景11.3 现状与分析11.3.1 目的和意义21.3.2 工具与技术要求21.4 论文组织结构2第2章 本设计相关技术介绍42.1 MVC模式分析42.2 SSH框架分析42.3 本章小结5第3章 系统分析与设计方案63.1 需求分析63.1.1 可行性分析63.1.2 功能模块需求分析63.1.3 界面需求分析73.1.4 性能需求分析73.2 框架整合73.2.1 Spring整合Hibernate73.2.2 Spring整合Struts273.2.3 Struts2、Hibernate和Spring的整合开发73.3 系统流程图83.4 前台分页方法103.5 数据库的分析与设计103.5.1 数据库链接原理103.5.2 C3P0连接池原理103.5.3 数据表描述103.5.4 数据库的逻辑结构设计113.6 本章小结13第4章 功能实现144.1 用户模块144.1.1 系统首页实现144.1.2 用户注册实现14.3 商品分类查询实现154.1.4 购物车实现164.1.5 订单实现174.2 管理员模块174.2.1 管理员页面实现174.2.2 分类管理实现174.2.3 商品管理实现184.2.4 订单管理实现184.2.5 权限拦截器实现184.3 本章小结19第5章 系统测试与结果分析205.1 系统测试的必要性205.2 系统测试设计205.3 系统测试结果分析215.4 本章小结22结 论23参考文献24摘 要如今,网上购物已越来越流行,网购也已经有了超越传统购物方式的趋势。人们在享受国内网购便捷的同时,甚至也出现了海淘热,人们可以足不出户就买到自己喜爱的商品。这些网购人群主要是青年人,而大部分则是正在学校的学生。本文讨论的就是学生如何发现自己喜爱的商品而又不会因为购物浪费大量的时间。本系统主要使用Java web技术开发了方便学生购物的网站。毫无疑问,学生应把大量时间用在学习而不是浏览各种繁杂不需要的商品上,因此校园购很好的满足了这一要求,学生可以在这里快速发现自己需要的商品。该网站类似其他主流的购物网站,但也有其自身的特色,对于学生来说更加便捷。本文较为详细的阐述了校园购网上商城的开发,该网站提供了以下基本服务:(1) 游客浏览商品。(2) 用户注册登录购物。(3) 商品加入购物车生成订单。(4) 管理员登录并进行操作。关键词: 校园购; SSH框架; 客户/服务器结构ABSTRACTToday, online shopping has been more and more popular, there is a kind of trend that online shopping beyond the traditional shopping. People enjoy shopping online easily, even overseas online shopping hot appeared, people can stay at home to buy their favorite products. The major of the online shopping population is young people, and most of them are students. This article discussed students how to find their favorite goods and will not waste a lot of time.This system mainly use Java web technology to develop a Website for students to purchase goods easily. No doubt, students should put a lot of time in learning rather than browse the kinds of goods, so the campus shopping online meet this requirement, students can find the goods they need quickly. The Website is similar to other mainstream shopping Websites, but also has its own characteristics, it is convenient for students. This article describes the development of the campus shopping online detailedly, the Website provides the following basic services:(1) Visitors see the products.(2) Users register and shopping.(3) Goods are added to cart and generates the order.(4) Administrator logins and operates.Keywords: campus purchase; SSH framework; client/server architecture第1章 绪 论下面我会对校园购网上商城进行系统详细的说明,这将包含我在开发网站过程中用到的软件以及相应的技术。主要运用Java web技术实现了该网站的各种功能。1.1 课题来源题目的来源主要是因为越来越多的大学生倾向网上购物,但目前主流的购物网站商品过于繁杂,学生往往浪费了大量的时间来寻找自己需求的东西。显然,这样会耽误学习。而且现在许多学生喜欢订外卖,每年的毕业季校园会有二手商品交易市场,因此校园购可以整合这些项目。这样既可以为学生节约许多时间方便学生们的生活,也可以让学生们找到物美价廉的商品,我希望通过自己在学校期间学到的知识为学生们建立属于他们自己的独具特色的购物网站。1.2 课题背景如今,我们处于信息时代,电子商务发展迅猛。每年的双十一,双十二更是一次次的刷新交易记录。人们不用亲自去商场挑选商品,仅仅只用坐在电脑前,便可以找到自己想要的商品。学生作为年轻人更倾向新潮的东西,网上购物对他们来说就更是家常便饭了,但这也就导致了很多学生用于网上购物的时间多于学习时间,这样一来网上购物对于部分学生来说就成了弊端。因此,学生们需要一个较为适合他们的购物平台,更加方便他们的学习生活,而不是影响到他们的学习,如果可以开发一个更懂得学生们真正需求的购物网站,对于他们来说是十分重要的。1.3 现状与分析国内一般用Java web来开发各种网站,当然.NET等也是非常受欢迎的。校园购主要采用SSH框架,该框架是一套较为成熟的开源框架,它是基于MVC设计模式之上,充分发挥MVC设计模式优点同时也具有自己的开发特点。1.3.1 目的和意义网站整体来看属于综合的购物网站,各种商品都有涉及,但所有商品都是学生们需求量大的,没有了过于繁杂的学生们几乎没有需求的商品。另外,网站还有方便学生生活的外卖模块以及物美价廉的二手市场。因此,学生可以快速找到需求的商品,不会浪费大量的学习时间,外卖以及二手商品则为学生们提供了更贴心的服务。与传统的商务模式相比电子商务的优势:(1) 方便快捷用户仅仅只用登录自己的账号就可以足不出户买到自己想要的商品,节约了各种不必要的时间花费。(2) 丰富的商品资源网站上所呈现的商品来自天南海北甚至国外,这是实体店所无法给与的。 (3) 自由用户可以搜寻到各种商品信息,购物也不再受天气时间影响,付款方式也更加多元化。(4) 实体专卖店增加收益实体店可以实现线上线下交易,买卖方式更加多元化,销售路径也更加广阔。1.3.2 工具与技术要求开发工具:My Eclipse 10,Tomcat 7.0,My SQL 5.0 。大学期间基本使用My Eclipse来开发网站项目,且My Eclipse对于网站开发支持很好,所以使用了My Eclipse作为开发工具。Tomcat作为服务器,My SQL主要用于数据库数据存储。Ajax技术描述:在么有使用Ajax技术的情况下,对于请求往往要刷新整个页面,这必然会造成各种浪费;使用了Ajax技术后,对于请求则可以实现页面局部刷新,大大缩短了响应时间。 软件环境:CPU:Inter Pentium(Celeron) 4 1.6GHz 或更高;内存:512M以上;操作系统版本:Windows NT/2000/2003/XP professional/Windows Seven;开发工具:My Eclipse 10;后台服务器:Apache Tomcat 7.0 ;开发语言:Java 浏览器:Firefox。 论文组织结构本文组织结构:第2章主要介绍了本系统用到的各种技术;第3章介绍了在系统开发前期进行了详细的需求分析,提出了合理的设计方案;第4章是系统实现了预期的各种功能,介绍了各种功能的实际效果;第5章是在系统完成后进行的全方位测试,介绍了测试过程及结果。第2章 本设计相关技术介绍由于本设计用到了MVC设计模式和SSH框架,所以在这里对其进行简单的介绍,在设计实现过程中这些技术始终贯穿。2.1 MVC模式分析模型是应用程序的主体,数据发生改变时,它需要负责通知视图部分。视图是用户可以看得见并与其进行交互的界面,视图接受模型发出的数据更新事件,从而对用户界面进行同步更新。控制器主要从视图中进行数据的读取,发送数据给模型以及对用户的输入进行控制1。本网站在MVC模式的基础上来开发,使用了My Eclipse 10作为开发工具,因此在建立工程的时候就把系统分为了MVC三层结构。模型层主要用来存放实体Bean类和Hibernate映射文件,开发者对实体Bean类的管理很方便,对Hibernate映射文件的配置也很方便,提高了开发效率,同时有利于后期的维护。视图层主要用于展示,主要采用了JSP技术。在这里html语言和java语言分离开来,以便解耦,有利于维护。流程控制被Action层负责,业务逻辑处理被Service层负责, html页面中展示数据则用到了Struts2标签。控制层是核心层,主要用于流程和逻辑控制。在这里控制层又被分为Action层、Service层和Dao层。它们各自都有自己的功能,Action层负责流程的控制,Service层负责逻辑的控制,Dao层负责数据。2.2 SSH框架分析SSH框架不是一个框架,而是由Struts+Spring+Hibernate集成的,是目前比较流行的Web应用程序开源集成框架,对于多层的Web应用程序具有很好的灵活性且易于扩展。Struts2使用拦截器的机制处理用户请求,由WebWork发展而来2。此外,Struts具有页面导航功能,仅仅需要一个配置文件,就可以把系统的各个部分联系起来。Hibernate对于对象来说就是持久化,JDBC是持久化机制,因此Hibernate对它进行了封装3。Hibernate把Dao层的编码工作变得非常简单,同时支持各种数据库,因此对于移植十分方便。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,在企业级的开发中提供轻量级的解决方案4。2.3 本章小结本章介绍了设计中所用到的各种技术,包括了MVC框架和SSH框架。第3章 系统分析与设计方案好的网站的在开发之前一定要进行详细地分析以及制定可行的设计方案,这些对于网站的开发至关重要,只有把前期的工作做好了,在开发过程中才能避免不必要的麻烦,保证开发的顺利进行。3.1 需求分析在开发一个系统之前我们要进行严格地需求分析,只有通过需求分析我们才能知道所要开发的系统是否满足市场需求以及开发的系统是否存在技术支持,所以需求分析是一个良好的开端。3.1.1 可行性分析这里要对校园购购物商城在技术、法律、操作和经济上是否可行进行一些概述。(1) 技术方面:大学期间学习过相关课程同时也做过一些小型的开发,期间My Eclipse和My SQL一直都是主要的开发工具,选择Java Web用来开发购物网站,又上网搜集了许多资料看了相关的书籍以及跟学长学姐们交流,确定了可以完成网站的建设。这样也就确定了技术上没有太大困难,系统开发具有可行性。(2) 法律方面:电子商务风靡全球,目前正是信息时代,所以国家支持并鼓励信息化发展。(3) 操作方面:大学期间学习过相关课程,同时在后期也做过一些简单的开发,因此对开发工具比较熟悉,所以在开发系统操作上没有问题。(4) 经济方面:开发网站不需要额外的成本支出,仅仅靠一台电脑加上开源的软件就可以进行开发。3.1.2 功能模块需求分析一个系统往往是由多个功能模块组成的,因此开始就要做到对功能模块有个初步的设想,这样在后续地开发过程中才能有比较清晰的思路,对于项目的顺利进行至关重要。该系统主要分为普通用户功能模块和管理员功能模块。普通用户可以进行常规的购物操作;管理员登陆成功后可以进行一系列基本操作。3.1.3 界面需求分析大量使用主流的技术使页面达到较为理想的效果。3.1.4 性能需求分析任何一个系统最关键的都是要确保其安全性。因此不同的登陆者拥有不同的权限等级,普通用户登陆后可以进行购物操作,没有登录的情况下则不能进行购物操作,用户在注册的时候还要确保信息完整以及填写的信息具有有效性。3.2 框架整合在各种整合方案中,Struts+Hibernate+Spring被作为Java EE应用开发的主流体系。3.2.1 Spring整合HibernateSpring提供了对Hibernate的Session Factory的集成功能,而Hibernate做完映射的对象被交给了Spring来进行管理,所以Spring和Hibernate的整合对于实际开发是十分必要的。这里对Spring整合Hibernate的步骤进行一些介绍:(1) Hibernate对Session Factory的设置要在Spring的配置文件ApplicationContext.xml中进行。(2) 在完成数据持久化操作时,Hibernate DAO实现类的编写需要Spring中HibernateDaosupport和Hibernate Template类来简化。(3) 用Spring的事务管理机制来进行事物的统一管理。3.2.2 Spring整合Struts2Spring容器管理Struts中Action实例的生成,实现控制器与业务逻辑组件的分离。 Spring的应用程序环境必须能被Struts的核心控制器装载,由于Spring容器管理类的时候,默认创建是单例,而Struts2创建Action类,默认是多例,所以一定要记着配置类的scope属性。3.2.3 Struts2、Hibernate和Spring的整合开发三者组合一般的开发模式:从底层开始,自下而上。然后DAO层和Service层的开发,最后是Action层的开发。3.3 系统流程图(1)用户登录流程图描述:用户成功登录后才能购买商品,并进行更加丰富地操作。如图3-1所示。图3-1 用户登录流程图(2)购买商品流程图描述:确认登录成后,用户可以购买商品,用户可以把选好的商品加入购物车,最后一起付款。如图3-2所示。图3-2 购买商品流程图(3)管理员登录流程图描述:管理员拥有极大的权限,管理员成功登录后才能进行相应的操作。如图3-3所示。图3-3 管理员登录流程图 前台分页方法这里主要是进行第一次从数据库查询时将查询到的数据缓存到一个Session中,以后的数据查询直接从Session中进行,这样以来就提高了响应速度,减少了对数据库的访问。 数据库的分析与设计通常数据库设计的好与否直接影响到这个网站的好坏以及用户体验,所以要对数据库进行严谨而又详细的设计。.1 数据库链接原理JDBC与具体的数据库进行连接时,驱动程序主要依靠JDBC API类库中的类来进行装载5。然后对其操作,完成后关闭数据库。.2 C3P0连接池原理数据库连接不仅是一项耗费大量资源而且相当慢的操作,连接池的出现就是为了提高性能和连接速度。它会将那些已经连接数据库的连接放到一个容器中,以后在连接时就不用从数据库中连接,而是从这个连接池中直接连接,用完后再放回去。.3 数据表描述这里进行了简单的数据描述如表 3-1所示。表3-1 数据表描述数据表描述adminuser后台管理员表category一级分类表categorysecond二级分类表orderitem订单项表orders订单表product商品表user前台用户表.4 数据库的逻辑结构设计(1)普通用户设计描述:考虑到用户使用的舒适性,这里应尽量减少信息的输入,因此只保留了必要的信息。如下表3-2所示。表3-2 用户表USER(user)是否主键字段名字段描述数据类型长度可空约束缺省值备注是uid用户编号INT(11)11否无无无否username用户名VARCHAR(20)20是无无无否password用户密码VARCHAR(20)20是无无无否name用户真实姓名VARCHAR(20)20是无无无否email用户邮箱VARCHAR(20)20是无无无否phone用户 VARCHAR(20)20是无无无否addr用户住址VARCHAR(50)50是无无无否state用户状态INT(11)11是无无无否code激活码VARCHAR(64)64是无无无 (2)管理员设计描述:管理员的相关信息。如下表3-3所示。表3-3 管理员表ADMINUSER(adminuser)是否主键字段名字段描述数据类型长度可空约束缺省值备注是uid管理员编号INT(11)11否无无无否username管理员名VARCHAR(50)50是无无无否password管理员密码VARCHAR(30)20是无无无(3)商品类别管理描述:管理员对网站商品进行了相应的分类,每件商品都进行了一级、二级分类,用户可以很快找到自己需求的商品,增加了网站的快速反应能力。如下表3-4和3-5所示。表3-4 一级分类CATEGORY(category)是否主键字段名字段描述数据类型长度可空约束缺省值备注是cid一级分类编号INT(11)11否无无无否cname一级分类名VARCHAR(50)50是无无无 表3-5 二级分类CATEGORYSECOND(categorysecond)是否主键字段名字段描述数据类型长度可空约束缺省值备注是csid二级分类编号INT(11)11否无无无否csname二级分类名VARCHAR(50)50是无无无否cid一级分类编号INT(11)11否外键无无(4)商品信息管理描述:对商品的属性定义,用户可以根据需求找到商品,管理员可以对商品有序管理。如下表3-6所示。表3-6 商品信息表PRODUCT(product)是否主键字段名字段描述数据类型长度可空约束缺省值备注是pid商品编号INT(11)11否无无无否pname商品名VARCHAR(50)50是无无无否market_price商品市场价DOUBLE0是无无无否shop_price商品商城价DOUBLE0是无无无否image商品图片路径VARCHAR(255)255是无无无否pdesc商品描述VARCHAR(255)255是无无无否is_hot是否热门商品INT(11)11是无无无否pdate商品上传日期datetime0是无无无否csid二级分类编号INT(11)11否外键无无 (5)订单项管理描述:商品被加入购物车后,生成订单。如下表3-7所示。表3-7 订单项表ORDERITEM(orderitem)是否主键字段名字段描述数据类型长度可空约束缺省值备注是itemid订单项编号INT(11)11否无无无否count数量INT(11)11是无无无否subtotal小计DOUBLE0是无无无否pid商品编号INT(11)11否外键无无否oid订单编号INT(11)11否外键无无 (6)订单管理描述:这里包含了用户购买商品的详细信息以及用户详细的住址信息。如下表3-8所示。表3-8 订单表ORDERS(orders)是否主键字段名字段描述数据类型长度可空约束缺省值备注是oid订单编号INT(11)11否无无无否total订单总金额DOUBLE0是无无无否ordertime订单时间datetime20是无无无否state订单状态INT(11)11是无无无否name收货人名VARCHAR(20)20是无无无否phone收货人 VARCHAR(20)20是无无无否addr收货人地址VARCHAR(50)50是无无无否uid用户编号INT(11)11否外键无无 本章小结在这章节里,对系统进行了严谨的各种分析,并制定了详细的设计方案来确保系统顺利实现。第4章 功能实现经过前期的充分分析,确定了该系统的可行性,于是进行了严谨而又详细的设计并按计划顺利完成了该系统,虽然该系统的某些细节可能处理的不是很好,但基本功能都已实现。4.1 用户模块在这里我们将以用户的视角来看该系统以及系统功能的实现,因此这里的设计是以服务用户为原则的,用户登陆后就可以进行更进一步的操作。4.1.1 系统首页实现系统首页描述:该系统类似其他主流的购物网站,因此用户在首次打开就可以很好地使用,注册登陆后就可以愉快地购物了。当然,既然是校园购,那么这里商品更多的是为了满足学生的需求,另外还有方便学生生活的分类。除此之外,系统首页还有热门商品和最新商品显示。首页实现介绍:系统首页的实现主要使用了JSP技术。其中对于热门商品显示设定is_hot为1时,该商品是热门商品;若is_hot为0时,该商品不是热门商品。而最新商品则是按照商品的上传日期倒序排序,且只显示10个商品。4.1.2 用户注册实现用户注册描述:为了保证用户的良好体验,在这里并没有特别多的信息录取,仅仅保留了几项最为重要的选项,用户在注册的时候必须确保信息不能为空且真实有效。当用户填写完相应的信息后,点击按钮提交,此时的触发事件是onsubmit,进行前台JS校验,校验方法如图4-1所示。前台校验部分function checkForm()/ 校验用户名:/ 获得用户名文本框的值:var username = document.getElementById(username).value;if(username = null | username = )alert(用户名不能为空!);return false;/ 校验密码:/ 获得密码框的值:var password = document.getElementById(password).value;if(password = null | password = )alert(密码不能为空!);return false;/ 校验确认密码:var repassword = document.getElementById(repassword).value;if(repassword != password)alert(两次密码输入不一致!);return false;图4-1 前台JS校验在进行完前台JS校验后,还需要使用AJAX对用户名是否存在进行异步校验,最后需要后台数据校验。4.1.3 商品分类查询实现商品分类查询描述:对所有商品进行了二级分类,点击一级分类可以找到对应的商品,然后又对商品进行了二级分类,更进一步地缩小需要查找的商品范围,可以快速找到想要的商品。分类查询的实现过程:当用户点击一级分类的链接时,会传递一级分类的id,封装一个PageBean,然后传递当前页数,最后调用Service完成查询;同样的,当用户点击二级分类链接时,会传递二级分类的id,经过一系列调用,最终完成查询。4.1.4 购物车实现购物车描述:用户发现自己喜欢的商品后,可以把商品加入自己的购物车。若用户确定后,就可以提交订单;如用户不想要了,则可以删除商品。此外,用户还可以直接清空购物车。购物车功能实现的方法如图4-2所示。购物车功能方法/ 将购物项添加到购物车:执行的方法public String addCart() / 封装一个CartItem对象:CartItem cartItem = new CartItem();/ 设置数量:cartItem.setCount(count);/ 根据pid进行查询商品:Product product = productService.findByPid(pid);/ 设置商品:cartItem.setProduct(product);/ 将购物项添加到购物车.Cart cart = getCart();cart.addCart(cartItem); return addCart; / 清空购物车的执行的方法:public String clearCart()/ 获得购物车对象.Cart cart = getCart();/ 调用购物车中清空方法.cart.clearCart();return clearCart; / 从购物车中移除购物项的方法: public String removeCart()/ 获得购物车对象:Cart cart = getCart();/ 调用购物车中移除的方法:cart.removeCart(pid);/ 返回页面:return removeCart; 图4-2 购物车功能方法购物车的功能不涉及数据库,因此创建了购物车的实体类,类中对购物车的功能进行了设定。4.1.5 订单实现用户在购物车页面点击提交订单按钮,完成页面的跳转;此时保存订单的数据,同时在页面中显示订单的数据;然后再根据用户的id查询当前用户的所有订单;最后在订单列表上点击付款,会根据订单的id查询订单。4.2 管理员模块管理员可以对网站的商品进行一些操作,这些操作将保证用户的购物体验,所以管理员在某种意义上很重要。4.2.1 管理员页面实现管理员页面描述:管理员需要输入自己的账号密码登录,错误会有提示。管理员页面主要采用了dtree.js作为树形结构菜单,这样对于商品的管理更加清晰。如图4-3所示。图4-3 管理员页面4.2.2 分类管理实现一级分类:点击一级分类列表上的添加按钮,跳转到添加页面,输入一级分类名称,将一级分类的数据添加到数据库中;点击删除按钮,传递一级分类的id,接收id,调用service完成删除;点击编辑按钮,根据cid查询一级分类,将数据显示到页面上,修改数据。二级分类:在二级分类列表上点击添加按钮,查询所有一级分类,在页面显示一级分类下拉列表,将二级分类数据保存到数据库;点击删除按钮,传递删除二级分类id,先查询再删除;点击编辑按钮,传递二级分类id,查询所有一级分类,将数据保存到数据库。4.2.3 商品管理实现在商品列表点击添加按钮,查询所有的二级分类,将数据添加到数据库,完成商品的图片上传;点击删除按钮,传递商品的id,删除商品的图片;点击编辑按钮,传递商品的id,查询所有二级分类的集合,数据保存到数据库,修改上传的图片。4.2.4 订单管理实现在订单列表点击订单详情按钮,传递订单id,使用AJAX异步获取当前订单项;单击发货按钮,传递订单id,修改订单状态;点击确认收货,传递订单id,修改订单状态。 权限拦截器实现权限拦截器描述:该系统对于Web上所有用户的请求会自动拦截,如果用户请求到达了,Filter可以对这些请求自动过滤;但要是以action结尾的请求会被转入Struts 2框架进行处理。因此,权限拦截器此时就需要对这些以action结尾的请求进行权限校验。如果管理员登录不成功,拦截器就会对action的访问进行拦截,此时管理员将没有权限对商品进行操作。权限拦截器部分如图4-4所示。权限拦截器部分public class PrivilegeInterceptor extends MethodFilterInterceptor protected String doIntercept(ActionInvocation actionInvocation) throws Exception / 判断是否登录,如果登录,放行,没有登录,跳转到登录页面.AdminUser adminUser = (AdminUser) ServletActionContext.getRequest().getSession().getAttribute(existAdminUser);if(adminUser != null)/ 已经登录过return actionInvocation.invoke();else/ 跳转到登录页面:ActionSupport support = (ActionSupport) actionInvocation.getAction();support.addActionError(您还没有登录!没有权限访问!);return ActionSupport.LOGIN; 图4-4 权限拦截器 本章小结本章节对系统的实现做了具体地说明,包括前台、后台,至此系统的基本功能都已基本实现,虽然细节方面可能会有些处理不到位,但总的来说校园购购物商城可以完成基本的操作,系统已初步具备应有的功能。第5章 系统测试与结果分析经过以上的分析设计阶段,该系统已基本实现功能。为了让系统更加稳定有效,需要对系统进行一系列的测试。5.1 系统测试的必要性实际开发过程中,最后一步往往少不了系统测试。测试虽然需要比较长的时间而且可能会耗费一定资源,但系统测试却是必不可少的。在测试中可能会发现开发过程中的某些功能没有实现或者某些细节优化的不好,而这些对于用户体验来说是至关重要的,用户体验将决定开发项目是否成功。因此为了让用户拥有最佳的体验效果,必须严格地进行系统测试。很显然,测试就是为了保证系统的运行没有问题,同时也要保证用户的体验效果。在测试的时候必须十分仔细,要保证每个方面都被测试。所以,一般来说既需要测试人员的专业评测,另一方面还需要普通大众的日常使用评测,这样才能保证测试的全面。对于专业的测试通常需要先进行最基础的功能模块测试,确保每个功能都能顺利实现;其次,要进行单元测试,把每个功能模块连接起来进行测试,确保各个功能模块可以同时运行;最后,就是系统测试,对开发的系统进行全方位的测试。测试完毕,系统便真正开发完成,可以投入正常的使用了。5.2 系统测试设计进行系统测试是为了保证系统的可用性及稳定性。由于本设计的核心是保证用户购物的实现,因此做了一系列有针对的测试组合。首先,把各个基本的功能模块分开测试,可以发现预先设想的功能能否有效实现;其次,把各个基本的功能模块结合起来,进行一系列的测试,可以从中发现这些功
展开阅读全文