版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 题目 基于Javaweb的宠物商城 学 院 信息工程学院 专 业 计算机科学与技术 姓 名 xxx 学 号 xxxx 指导教师 xx 完成时间 20xx年x月 目 录摘 要IAbstractII第1章 绪论11.1 选题的背景与意义11.2 课题现状和发展趋势11.3技术路线1第2章 系统分析32.1系统功能需求32.2 系统非功能需求32.2.1性能需求32.2.2安全性需求32.3 可行性分析42.3.1 系统可行性42.3.2 技术可行性42.3.3 操作可行性42.3.4 系统经济可行性52.4相关技术简述52.4.1 JavaScript52.4.2 JSP62.5 系统开发环境介
2、绍6第3章 总体设计73.1 功能确定73.1.1 前台设计73.1.2 后台管理系统设计93.2 数据库设计113.2.1 实体属性113.2.2 数据库逻辑设计12第4章 系统实现154.1 系统主页面154.2 非登录用户操作154.2.1 用户注册154.2.2 用户登录164.2.3 找回密码184.2.4 查看商品信息184.2.5 搜索商品194.3 登录用户操作214.3.1 购物车214.3.2 提交订单224.3.3 付款234.3.4 更新个人信息244.3.5 重新设定密码254.3.6 注销254.4 后台管理264.4.1 后台登录264.4.2 后台主页面274.
3、4.3 新增商品类别274.4.4 修改商品类别284.4.5 新增商品294.4.6 修改商品304.4.7 订单管理304.4.8 条件查询314.4.9 会员信息管理324.4.10 重新设定密码32第5章 系统测试345.1 测试的目的345.2游客功能测试345.2.1 注册功能测试345.2.2登录功能测试345.3已登录会员功能测试355.3.1购物车功能测试355.3.2订单功能测试355.3.3付款功能测试355.3.4更新个人信息功能测试365.3.5重新设定密码功能测试365.3.6注销功能测试365.4管理员功能测试375.4.1登录功能测试375.4.2商品类别管理功
4、能测试375.4.3商品管理功能测试375.4.4订单管理功能测试385.4.5会员管理功能测试385.4.6修改个人密码功能测试39第6章 总结与展望40参考文献41致 谢42附录一 外文文献原文43附录二 外文文献译文50附录三 任务书55附录四 开题报告57附录五 关键代码60基于javaweb的宠物商城摘 要随着时代的进步,宠物作为人类生活中重要的陪伴者,以宠物为中心的一系列生产、销售、 服务等行业也随之日益兴起。此套系统旨在建立商家以及所有宠物的爱好者之间的桥梁,为宠物爱好者提供宠物活体以及各种宠物衣食住行所用到的必需品。从开发的角度来看,本套系统采取的是B2C模式,结构简单明了,架
5、构清晰合理,若后期有额外的需求,扩展相对容易,随时可以根据需求进行二次开发。技术上选择使用如今市场上较为成熟但并未淘汰的开发工具java+mysql+Tomcat 7+jdk 7。从功能的角度来看,此套系统的功能界限清晰明了。主要功能以两大身份作为分界:一个是会员端的功能,一个是管理员端的功能,主要是登录、商品类别管理、商品管理、订单管理、会员管理、会员充值、修改个人密码等等。此套系统包括了一个商城系统必须的功能,能够满足日常使用,提供给会员以及管理员的操作方式也非常友好。从总体来看,此套系统无论是在实用性、适用性、功能性还是扩展性都能够满足大众的需求,在这个基础之上还添加了一些额外的特性,来
6、提升会员体验。关键词:宠物,系统,java,B2C中图分类号:TP391Javaweb Based Pet MallAbstractWith the advancement of the times, pets are an important companion in human life, and a series of pet-centered production, sales, and service industries are also emerging. The system is designed to bridge the gap between merchants and
7、 all pet lovers, providing pet lovers with the essentials of living with pets and a variety of pets.From the perspective of development, this system adopts the B2C mode, the structure is simple and clear, and the architecture is clear and reasonable. If there are additional requirements in the later
8、 stage, the expansion is relatively easy, and the secondary development can be carried out according to the requirements at any time. Technically, I chose java+mysql+Tomcat 7+jdk 7 which is a mature tool that is not matured on the market today.From a functional point of view, the functional boundari
9、es of the system are clear. Key features include registration, login, browse products, search for products, view products, add shopping carts, submit orders, manage personal information, etc.; administrator login, product category management, product management, order management, member management,
10、member recharge, modify you Personal password, etc. The system includes the mall system to meet the functions required for everyday use and is also very friendly to members and administrators.In general, the system can meet the needs of the public, whether it is practical, applicable, functional or
11、scalable. Based on this, it adds some extra features to enhance the membership experience.Key Words : pet, system, java, B2CIV华北水利水电大学毕业设计IIV第1章 绪论1.1 选题的背景与意义随着信息化时代的发展,或者称之为万物联网时代的发展,人们对互联网技术的要求逐渐变得更高了,人们如今逐渐开始追求足不出户就可以利用网络平台进行购买日常所需,而随着互联网行业各种技术的日新月异,这一设想逐渐成为现实。对于实体店商家来说,在网络平台进行二次交易将大大降低客户流失率。放眼旁
12、观,如今宠物市场仍然是实体店居多,随着互联网行业以及物流行业的迅猛发展,电商对于商家来说是一种留住老客户、提高销售额的更高的方法。但由于宠物活体交易较为特殊,传统行业和电商行业均满足不了所有消费者的需求,因此开发一个买卖双方线上线下相结合的系统迫在眉睫。网站拟与部分宠物店达成合作意向,通过网站商家管理平台的嵌入式系统设计,便于商家对店面收支、用户消费、网上商城进行管理,进一步实现用户、网站、宠物店三赢效果1。1.2 课题现状和发展趋势从近几年的数据来看,电子商务依然火爆,前几年只是个预热,未来十年才是电子商务的大爆发,最有市场潜力的,必定是线上线下相结合的方式。宠物市场日益增大,若我们能够紧跟
13、时代的潮流,必能将宠物市场引向更大的平台。讨论完宠物商城的现状与发展趋势,再次回到本课题的开发。本课题之所以选择B/S架构,不仅仅是因为是目前最为主流,也是因为它的方便快捷性。当然,时代仍在马不停蹄地进步,不得不承认还有其他第三方开发框架产生,但目前来看,B/S架构占据了半壁江山。1.3技术路线此套系统选择使用的设计模式,通常被人们成为MVC设计模式。不同的层次会让数据的传输显得很清晰, 有利于我们充分把握数据的流向, 和对数据进行控制, 而java EE的技术结构分为三层, 分别是表示层、中间层、数据层2。此套系统结构主要分为四层:action层、service层、dao层以及po层。此套系
14、统使用spring的HibernateTemplate事务模版进行数据库的操作,po层为实体类,每个实体类对应一张数据库表,并通过注解标识其为实体类,交给Hibernate管理,简单的对数据库的操作都可以自行完成,SQL语句是通过封装的Hibernate自动生成,简单快捷,结构层次十分明了,便捷开发,提高效率。前端显示页面采用的技术比较多,主要是JSP动态生成HTML,JavaScript使用多重函数,HTML生成静态页面,并通过CSS控制样式,这些技术非常成熟,上手容易,操作简单,多种技术相结合使用使得会员体验度得到大大的提升。因为前端页面效果要求比较简单,因而此套系统没有使用前端框架,此套
15、系统需要查看数据的部分均是使用标签完成,这样更方便设计成为自己想要的布局。页面效果会因时而变,可以进行动态的刷新, 最终实现用户、商家和网站的交互功能,达到预期网站功能的同时,提升用户的浏览体验1。 后台采用的框架为SSH,配置文件与注解相结合的方式进行整合开发,它具有良好的跨平台、可移植性、可扩展性、容错性。该系统应用到实际环境之中,不但具有完善的功能,还具有良好的性能及较高的安全性3。但随着新技术的日新月异以及老技术的逐渐被替代,此时SSH框架的优势就体现出来了。基于低耦合的软件实现方式,就算软件后期有新的需求变化,也无需担心大改的问题。第2章 系统分析2.1系统功能需求根据使用者的需求调
16、查以及结果分析,要求此套系统的前台必须实现如下功能。对于游客身份而言,如同普通电子商务网站一样,首先可以访问商城系统前台首页,游客可以自行选择自己感兴趣的商品,进而可以相对精确的选择出自己所需商品进行浏览。由于游客的身份的特殊性,功能相对较少,因此给游客提供了注册成为会员以及用已有账号进行登录的功能;对于已经登录的会员来说,功能相对比较强大,拥有游客的所有权限,可以访问商城系统前台首页,通过游客手动选择商品分类,筛选出自己想要的商品进行浏览,看到心仪的宝贝可以单独将某个商品添加到个人购物车。此套系统的后台需具备商品管理功能:让商家可以快速地去了解商品的详情, 并从中获取想要得到的内容4。为了使
17、此套系统有更严谨的逻辑性,尽可能保证会员输入数据正确并且安全,需要对会员的某些操作进行确认。比如注销、删除时需要进行弹窗二次确认,更改个人密码时需要对两次输入的密码进行比较,判断是否相同。为提升会员体验,系统导航栏需显示会员当前所在位置,系统页面上方要显示当天日期,系统采用异步交互。2.2 系统非功能需求2.2.1性能需求此套系统以线上线下相结合的方式,符合人们的正常思维逻辑,既有质量保证,售后保障,又方便了会员以及商家之间的交易。异步交互的方式提升了会员的操作体验感,整个系统操作起来非常简单5。2.2.2安全性需求此套系统通过层层校验,具有一定的安全性,会员输入的隐私数据具有保密性,不会被别
18、人直接看到,例如密码。2.3 可行性分析2.3.1 系统可行性对此套系统从以下几个方面进行系统可行性分析:会员需求确定、系统使用者确定、成本预估、使用价值。经过研究与分析,在该课题设计之初,使用者基本定位在宠物实体店商家,以及在该实体店购买过商品的新老客户。对于商家来说,这是一种留住老客户、减少资源流失率的一种途径;而对于消费者来说,使用该商城进行消费首先享受店内价格的八折,其次是无需外出便可以收到自己想要买的物品,若是活体等不方便快递运输的物品,可由商家自行配送。如今可以实现线上线下相结合方式的宠物商城仍然稀缺,而饲养宠物的人越来越多,因此这类产品必能占据一定比重的市场6。因此可以认为,此套
19、系统具有非常合理的系统可行性。2.3.2 技术可行性此套系统采用较为成熟的SSH框架, 即Struct2+Spring+Hibernate组合框架模式, 其中:Struct2为控制器, 负责模型与视图数据交互, 进行可视化处理;Spring提供业务支持, 解决程序中的业务逻辑层与其他层次 (如数据访问层) 的耦合性;Hibernate提供数据服务, 全自动框架, 自动生成相对应数据库中的SQL语句7。此套系统能更好的实现前后端分离,更清晰地交互,也能够更方便的操作数据库、管理数据。将项目部署到本机的Tomcat上,有利于数据共享。此套系统使用的技术都是现如今在市场上非常成熟的技术,性能稳定。在
20、此套系统的开发模式中,是基于dao层操作数据库,这种开发模式层次清晰,开发效率高,整体性能相对稳定。因此可以认为,此套系统具有非常合理的技术可行性。2.3.3 操作可行性此套系统开发过程简单快捷,只需熟练使用框架,熟悉流程就可在短时间内完成整个系统。操作简单,只要会使用浏览器即可。对于开发者和使用者来说,都无需深入学习计算机,熟悉简单业务逻辑即可8。因此可以认为,此套系统具有非常合理的操作可行性。2.3.4 系统经济可行性此套系统使用的开发工具、数据库等均免费且技术成熟,故所有成本仅是人力成本以及投入的时间成本9。系统开发完成之后能长期使用,留住老客户,减少人力投资,相对提高了办事效率。此套系
21、统开发部署所用到的工具大多免费,因此开发和部署的成本相对于其他开发模式来说相对比较低,会员体验度相对也比较高,开发系统的经济成本远远小于此套系统为商家带来的利润。因此可以认为,此套系统具有非常合理的经济可行性。2.4相关技术简述2.4.1 JavaScript在普遍使用拨号上网的年代,Javascript那时还运用于验证,这类验证工具备受会员钟爱。但由于各浏览器之间的激烈竞争,很多开发者弃用JavaScript,以至于JavaScript市场的紧缩,甚至不愿承认其实一门“计算机语言”。但随着时代的发展,如今浏览器与Web应用,甚至服务器端,几乎无一不使用Javascript脚本进行客户端(DO
22、M)操作。多年来的改变与进步使得JavaScript可以完美地提供服务支持、实现核心业务逻辑10。不容置疑的是,JavaScript如今已经成为一门非常实用的语言,简直就是为服务I/O密集型的应用而诞生。我们可以相信,Javascript功能必定会在将来越来越强大,会受到更多开发者的追捧。客户端JS是如何实现的呢,使用过Javascript的开发者都知道,最主要在于三部分内容。其一,ECMAScript定义了JS语言的语法及其特性,它作为JS语言的核心,对于实现该标准规定的所有方面,它都进行了详细描述;其二是最关键的DOM,W3C早在以前就对之进行了标准化,文档对象模型如今已经非常常见,非常成
23、熟 。开发者通常结合使用CSS的API,通过DOM语法操作页面的HTML结构,对整个页面HTML结构的抽象处理,动态生成HTML,实现动态效果;其三是及其重要的浏览器对象模型,在前端页面开发时,可以通过控制浏览器的内置对象,JS访问并操作浏览器窗口属性,提高HTML页面的动态效果,增强会员对页面文件的体验。但至HTML5出现之前,但BOM未被标准化,这是从初入编语言迄今为止一直存在的问题。2.4.2 JSPJSP通常被认为是HTML与JAVA的结合体,JSP特殊性也因此产生。JSP用来表达或显示动态值的HTML页面,开发者都深知可以用AJAX来配合JSP也能实现JSP的效果,但是远远比不上JS
24、P的效率。缺点是JSP调试程序相对比较困难,因为系统出错时浏览器中显示的行数是转换后的Servlet程序代码的行数而不是JSP源码的行数10。2.5 系统开发环境介绍 此套系统开发工具及运行环境:编程语言 : Java 操作系统 :Windows 10 浏览器 :Google Chrome 数据库 :MySql 集成开发环境 :Eclipse,Jdk 1.7 应用服务器 :Tomcat 7.0.92 设计模式 :MVC设计模式;B/S结构 主要技术 : 前端 :html、css、javascript、AJAX技术 后台 :使用struts+spring+hibernate框架 第3章 总体设计
25、3.1 功能确定结合用户的需求,从业务上、功能上等多层方面进行详细分析,最终确定下来了可行的设计蓝图。3.1.1 前台设计此套系统在功能上大致有两大核心。对于实体店的老顾客来说,成为会员之后能够正常使用此套前台系统,主要功能包括浏览商品信息,添加购物车,提交订单,管理订单,管理个人信息。此部分基本的功能设计如下图3-1所示。图3-1 前台系统功能系统前台工作流程图如下图3-2所示。图3-2 系统前台工作流程3.1.2 后台管理系统设计对于后台管理系统的使用者也就是实体店的管理员来说,需要通过此套系统对一些数据进行有效的管理,主要包括用户管理,订单管理,商品类别管理,商品管理以及系统管理等,用户
26、管理包括用户信息的查询、修改和删除,订单管理包括订单信息的查询和删除,商品类别管理包括商品类别的添加和删除,商品管理包括商品信息的添加、修改和删除。此部分的基本功能设计如下图3-3所示。图3-3 后台管理系统功能后台工作流程如下图3-4所示。帐号有效输入账号密码NY后台主页面商品类别管理商品管理订单管理用户管理添加商品类别删除商品添加商品删除商品类别订单操作用户删除用户查询订单查询操作成功后台登录NY有YN系统管理退出系统修改登录密码结束有图3-4 系统后台工作流程3.2 数据库设计此套系统选用的数据库,是开发过程中最为普遍的数据库,也是免费的数据库,那就是关系型数据库MySql。无论是业内人
27、还是业外人,数据库的重要性众所周知,在软件开发过程中数据库是不可或缺的一部分内容,其中数据库的设计包括逻辑设计、参数定义等。根据对系统的分析,将每张数据库表的字段值向上抽象提取并设计成对应的数据库实体,对数据库进行概要设计。概念模型主要是通过E-R图作为描述工具。此套系统数据库表对用的实体大致分为以下几类:用户类、商品类、商品类别、管理员类、订单类。3.2.1 实体属性(1) 此套系统中将会员(用户)实体设计为拥有八个属性如下图3-5所示。图3-5 会员属性(2) 此套系统中将商品实体设计为拥有十个属性如下图3-6所示。图3-6 商品实体属性(3) 此套系统中将商品类别实体设计为拥有两个属性如
28、下图3-7所示。图3-7 商品类别实体属性(4) 此套系统中将订单实体设计为拥有九个属性如下图3-8所示。图3-8 订单实体属性(5) 此套系统中将管理员实体设计为拥有三个属性如下图3-9所示。图3-9 管理员实体属性3.2.2 数据库逻辑设计根据以上描述,系统所有关联的表与表均可以用一个ID进行关联11。设计如下 :(1) 用户信息表(users) 如下表3-1所示。表3-1 用户信息表字段值字段类型默认可为空字段解释约束userIdint(30)1(自增)否用户ID主键namevarchar(60)无否用户usernamevarchar(60)无否用户名passwordvarchar(60
29、)无否密码sexvarchar(60)无否性别(2) 商品类别信息表(commodityclasses)如下表3-2所示。表3-2 商品类别信息表字段值字段类型默认可为空字段解释约束commodityIdint(30)1(自增)否商品类别ID主键commodityClassvarchar(60)无否类别名称(3) 商品信息表(commoditys)如下表3-3所示。表3-3 商品信息表字段值字段类型默认可为空字段解释约束commodityIdint(30)1(自增)否商品ID主键commodityNamevarchar(60)无否名称commodityClassvarchar(60)无否商品类
30、别外键commodityPricedouble(30)无否原价commodityAmountint(60)无否总量manufacturervarchar(60)无否生产厂商commodityDepictvarchar(200)无否描述commodityLeaveNumint(60)无否剩余库存imagevarchar(200)无否图片webShopPricedouble(30)无否现价(4) 商品类别信息表(commodityclasses)如下表3-4所示。表3-4 商品类别信息表字段值字段类型默认可为空字段解释约束commodityIdint(30)1(自增)否商品类别ID主键commod
31、ityClassvarchar(60)无否类别名称(4) 管理员信息表(admins)如下表3-5所示。表3-5 管理员信息表字段值字段类型默认可为空字段解释约束adminIdint(30)1(自增)否管理员ID主键adminNamevarchar(200)无否账号adminPasswordvarchar(200)无否密码(5) 订单信息表(orderform)如下表3-6所示。表3-6 订单信息表字段值字段类型默认可为空字段解释约束orderFormIdint(30)1(自增)否订单ID主键orderFormNumbigint(30)无否流水号totalPricevarchar(60)无否总
32、额commodityvarchar(60)无否商品外键consignmentTimevarchar(60)无是发货时间submitTimevarchar(60)无否提交时间remarkvarchar(60)无是备注isPayoffvarchar(10)无否是否已付款isConsignmentvarchar(10)无是是否已发货usernamevarchar(30)无否用户外键第4章 系统实现4.1 系统主页面为使用户体验度达到最好的效果,此套系统颜色上选择使用淡蓝色调,清新淡雅,不会很刺眼。系统页面简洁,导航栏中的每个功能都易于操作12。导航栏下方显示商品类别列表、已上架商品列表、用户登录框等
33、信息,用户可以通过左侧导航栏通过类别查询对应类别的商品,也可以通过搜索来查找相似商品。系统主页面如下图4-1所示。图4-1 系统主页面4.2 非登录用户操作4.2.1 用户注册游客可通过注册成为会员联系管理员进行充值之后便可以进行购买。游客注册页面如下图4-2所示。图4-2 用户注册页面用户注册逻辑如下:点击“新用户注册”超链接,会进入register.JSP页面,用户自行输入注册时的信息,确保输入信息真实之后进行提交,提交到系统之后首先会根据自定义的规则对输入的信息进行查验并到对应数据库中查找,如若用户名已存在,或者邮箱手机号不符合规则,或者必填信息不完善,将给出错误提示,用户再次填写并提交
34、。若查验通过,将请求用户action层,调用register()方法进行注册。在提交注册表单时会将用户信息作为参数传递过来,程序中先获取用户名,调用用户service层的findUserByName(String username)方法,用户service层调用用户dao层的findUserByName(String username)方法,根据用户名去users表中进行查找,若找到该用户的信息存在,那就说明该用户名已经存在了,这种情况下注定是注册失败了,然后将会直接再次跳转到注册页面,页面显示相关提示信息,要求用户重新进行注册;否则跳转到登录页面。4.2.2 用户登录会员通过两种方式进行登录
35、的页面是相同的。登录页面如下图4-3所示,登录成功页面如下图4-4所示。图4-3 会员登录页面图4-4 会员登录成功后页面用户登录逻辑如下:用户无论以哪种方式登录进入的页面都是同一个页面,首先要求其输入账密信息进行登录,系统首先会对会员填写的信息进行校验,若校验通过,将访问用户action层的login()方法即登录方法获取用户输入的参数,用户action层将调用用户service层的getUserByLoginNameAndPassword(username,password)方法,用户service层调用用户dao层的getUserByLoginNameAndPassword(userna
36、me,password)方法,根据表单提交时传递过来的两个参数即账密去数据库中的users表中进行查询,若找到该用户的信息不存在或者全部为null,则说明账密是有问题的,给出明确的错误提示信息,再跳转到原来的登录页面,提示用户重新进行登录;若能找到该用户,说明用户输入信息是没有问题的,允许该用户进行登录,并自动跳转到系统主页。登录后的用户可以进行一系列会员的正常操作,并具备游客的所有功能。4.2.3 找回密码如果已经注册过的会员不慎忘记了个人密码而无法成功登录进去系统,那么是可以通过该会员注册时输入的正确信息,重新设定新密码的。如下图4-5所示。图4-5 找回密码页面业务逻辑如下:点击“忘记密
37、码”超链接,进入findPass.JSP页面,用户输入注册时的真实个人信息,点击提交将访问用户action层中的findUser()方法查找用户,首先获取用户所有参数,再调用用户service层的findUserByinfo(username, name,sex,phone, post, address, email)方法,用户service层调用用户dao层的findUserByinfo(username, name,sex,phone, post, address, email)方法,通过用户信息去数据库的users表中查找用户,若找到的用户信息不存在或者信息全部为null,则说明传递过来
38、的参数室友问题的也就是说账密有问题,这时应该给出一定的错误提示,之后再次跳转到原来的找回密码即findPass.JSP页面,要求重新输入;若成功查找到该用户,则说明输入信息正确,此时允许会员重新设定新密码,设置成功之后系统将自动跳转到登录页面。4.2.4 查看商品信息点击商品右下角“+详情”,可以查看会员所选择商品的具体信息。如下图4-6所示。图4-6 商品详细信息页面业务逻辑如下:点击商品右下角“+详情”,将访问商品action层的findCommodityById()方法,同时传递过来该商品的id,商品action层获取该id,调用CommodityService的findCommodit
39、yById(commId)方法,CommodityService调用商品dao层的findCommodityById(commId)方法,通过商品id号去数据库中的commoditys表中查询到该商品,将该商品保存至request域中,然后转发到showdetails.JSP页面,在该页面获取request域中的Commodity对象,将相关信息显示到该页面。4.2.5 搜索商品用户可以按照自己需求输入部分关键字组合进行搜索商品,若没有相关信息页面会给出提示;若有相关信息,获取商品集合,将集合中的每一项都显示在页面上。如下图4-7所示。图4-7 搜索商品结果页面搜索商品业务逻辑如下:当用户在搜
40、索框输入信息,将访问商品action层的findCommodityByName()方法,首先获取搜索框中的内容,再调用购物车service层的findCommodityByName(commodityName)方法,CommodityService调用商品dao层的findCommodityByName(commodityName)方法,去数据库中的commoditys表中查询到所有相关商品,将商品集合保存至request域中,保存搜索信息,转发到showByName.JSP页面,显示商品列表。4.3 登录用户操作4.3.1 购物车成功登录之后的会员可以将心仪的宝贝添加到个人购物车中,并可以通
41、过万能的导航,进入个人的购物车查看详情。购物车页面如下图4-8所示。图4-8 购物车页面添加购物车业务逻辑如下:用户点击购物车按钮,将访问购物车action层,同时将id作为参数传递过来,访问购物车action层的execute()方法,先获取id,再调用购物车service层的findCommodityById(commodityId)方法,购物车service层调用商品dao层接口的findCommodityById(commodityId),从数据库的Commoditys表中通过id查找商品,若该商品的剩余库存commodityLeaveNum为0,给出缺货信息;若剩余库存commodi
42、tyLeaveNum不为0,则判断是否已存在购物车,若不存在的话则新建一个购物车对象car,之后会将该商品对象commodity添加到购物车对象car中,并将该商品的剩余库存commodityLeaveNum更新,减去购物车中该商品的数目;若已经存在购物车car,则先获取car,再将商品添加到car中,更新该商品在数据库中的剩余库存。从session中获取该购物车,循环得到每一个商品,将每个商品的价格相加得到购物车中所有商品总额,然后将购物车和总金额都保存至request域中,之后跳转到showCar.JSP页面,将该用户个人购物车中所有的商品信息显示到当前页面上。购物车提供提交订单、移除商品
43、、继续购物的功能。4.3.2 提交订单订单未提交的时候会员可以离开该页面去添加别的商品,若确定要提交可以按照自己的需求与否给店家留言即备注必要信息或者直接忽略这一步,确认无误之后点击按钮将该订单提交,提交如下图4-9所示,提交成功如下图 4-10所示。图4-9 提交订单页面图4-10 我的订单页面提交订单业务逻辑如下:点击购物车中的“提交”按钮,将访问订单action层的addOrderForm()方法,先通过用户名获取该用户,再获取该用户的余额,设置订单金额,订单service层的save(orderForm)方法,订单service层将调用订单dao层的save(orderForm)方法,
44、获取购物车,清空购物车,将该订单保存起来,跳转到付款页面payMent.JSP。此时,若点击“我的订单”,用户可以对显示出来的订单列表执行需要的操作。4.3.3 付款两种方式:一是从购物车购买,二是在“我的订单”中进行付款或者删除。会员无论在哪个页面中点击付款之后,都会先检查会员还有多少钱,若会员的前不够,则给该会员提示余额不足无法付款的信息,引导会员联系管理员进行充值;若会员的钱充足,那么就可以付款成功,商家可以在后台管理系统中进行发货。支付如下图4-11所示,状态的变化如下图4-12所示,成功如下图4-13所示。图4-11 用户付款页面图4-12 我的订单页面图4-13 用户付款成功页面付
45、款业务逻辑:用户点击“付款”按钮,将访问订单action层的payOrderForm()方法,先获取订单总金额,再获取当前用户余额,判断是否足以购买该商品,若用户的资金不够则应该在页面显示相关的提示信息;若足够支付则允许其进行购买然后更新该用户余额,将订单表的“isPayOff”字段更新为“是”,将更新后的订单保存起来,给出“付款成功”提示信息,跳转到payMent.JSP页面,显示更新后的订单信息。4.3.4 更新个人信息登录后的会员在个人中心页面点击“修改信息”即可自行修改自己的部分信息,会员在新进入的链接中需要按要求输入符合规则的各项信息之后可以提交(若不符合规无法进行提交),系统通过自
46、定义的规则先对这些信息进行核验,若核验通过则提交成功,从数据库中查找该会员更新后的信息,重新显示在“个人信息页面 ”。用户个人信息页面如下图4-14所示,修改个人信息页面如下图4-15所示。图4-14 用户个人信息页面图4-15 用户修改个人信息页面修改个人信息业务逻辑如下:用户点击“个人中心”,进入userInfo.JSP页面,能够查看自己的信息,也能够修改自己的信息。点击“修改信息”超链接,跳转到userInfoUpdate.JSP页面,若用户提交,系统会先以自定义的规则对用户输入信息进行查验,若符合规定,则访问用户action层的updateUser()方法对个人信息进行更新,用户act
47、ion层调用用户service层的update(user)方法,用户service层调用用户dao层的update(user)方法,更新数据中中该用户的信息,给出“信息已经更新”的提示。跳转到userInfo.JSP页面,显示用户更新后的个人信息。4.3.5 重新设定密码登录之后的用户可以修改自己的密码。如下图4-16所示。图4-16 用户重新设定密码页面重新设定密码业务逻辑:会员如果需要重新设定个人密码,则进入重新设定密码updatePass.JSP修改页面,先输入1次新密码,再输入第2个密码即确认密码进行二次确认,单击“提交”,系统将自动以自定义的规则对会员输入的信息进行验证,若输入信息符
48、合规定,用户输入的两次密码也一致,则访问用户action层的upPass()方法对用户密码进行重新设定,用户action层调用用户service层的update(user)方法,用户service层调用用户dao层的(user)方法,更新成功之后,给出“您的密码已经修改”提示信息,重新登录。4.3.6 注销 登录后的用户可以选择注销,以游客的身份使用系统。如下图4-17所示。图4-17 用户注销页面用户注销业务逻辑:用户可若有需求可推出系统,当选择注销的时候,后台将访问用户action层中的注销方法,系统将清空 session 中的所有数据,用户信息不复存在,然后跳转到index.JSP,进入
49、商城首页,以游客身份使用系统。4.4 后台管理4.4.1 后台登录管理员进入后台登录页面,在登录页面有两个关键信息需要管理员照实填写,如果输入正确无误并且能够从数据库中查找到该用户,则账密有效,允许进入后台进行管理员操作,若账密无效,则不能进入后台管理系统,并在该页面作出相应的提示信息。如下图4-18所示。图4-18 后台登录页面后台登录业务逻辑:用户点击导航栏右上方的“后台管理”超链接,将跳转到admin路径下的login.JSP页面,输入账密,提交时系统首先会以自定义的规定对用户输入的用户名以及密码进行检验,看是不是符合定义的规则,若不符合规定,在该页面作出相应的提示信息,要求用户重新输入
50、,若符合规定,将访问管理员action层的login()方法,先在管理员action层中获取传递过来的两个参数(管理员账号及密码),再调用管理员service层的getUserByLoginNameAndPassword(username,password)方法,管理员service层调用管理员dao层的getUserByLoginNameAndPassword(username,password)方法,从数据库中admin表通过用户名以及密码查询该管理员信息,若获取到的user对象为null,说明是用户输入信息有误,给出错误提示,让用户重新登录。若查找到的用户信息不是空的,即该用户存在,那就
51、说明管理员输入的账密正确,则将该用户保存起来,允许其进入后台主页。4.4.2 后台主页面中间部分主要对此套系统进行一个简介,以及后台系统各模块的具体功能。导航栏与中间部分有个小导航栏,主要方便管理员切换用户以及退出系统。如下图4-19所示。图4-19 后台管理主页面4.4.3 新增商品类别后台管理员拥有对商品类别的管理权,可以对商品类别进行CURD操作。如下图4-20所示。图4-20 添加商品类别页面添加商品类别业务逻辑如下:管理员用户点击“添加商品类别”进行新增操作,将跳转到include / commodityClass / commodityClassAdd.JSP页面,用户填写信息之后
52、提交,将访问商品类别action层的addCommodityClass()方法,商品类别action层会直接去调用商品类别service层接口的findCommodityClassByName(commodityClassName()方法,而商品类别service层接口实现类将调用商品类别dao层接口的findCommodityClassByName(commodityClassName()方法,商品类别dao层接口实现类将从数据库的commoditys表中通过商品类别名查找该商品类别。若能够查找到,说明已存在,给出提示信息“已经存在,请重新输入信息!”,跳转到commodityClassAd
53、d.JSP再次填写信息再次提交;若从数据库中未能查找到,说明可以添加,商品类别action层将会调用商品类别service层接口的save(commodityClass)方法,商品类别service层接口实现类调用商品类别dao层的save(commodityClass)方法,将该类商品类别插入数据库中,给出提示信息“添加成功”。4.4.4 修改商品类别管理员在商品类别列表,选择要进行操作的商品类别,在右侧点击修改,即可对所选择的商品类别信息进行修改。修改商品页面如下图4-21所示,修改成功页面如下图4-22所示。图4-21 修改商品类别页面图4-22 商品类别修改成功页面修改商品类别业务逻辑
54、如下:当用户点击“修改”这个超链接时,将会访问商品类别action层的toUpdateCommodityClass()方法,商品类别的action层调用 商品类别service层的findCommodityClassById(commodityClassId()方法,商品类别service层调用 商品类别dao层的findCommodityClassById(commodityClassId()方法,从数据库中通过商品类别id查找当前商品类别,将当前商品类别保存至request域中,再跳转到commodityClassUpdate.JSP,显示修改成功信息。4.4.5 新增商品管理员要不定时的
55、上新商品,即新增商品信息。新增商品时,用户必须完善商品信息必须的属性。新增页面如下图4-23所示,新增成功如下图4-24所示。图4-23 新增商品页面图4-24 成功新增商品页面新增商品业务逻辑如下:用户在商品列表点击“添加”超链接,访问商品action层的adCommodity()方法,为了在其页面显示商品类别下拉框,我们需要将商品类别查询出来再保存起来,然后跳转到commodityAdd.JSP,用户填写商品信息后点击“提交”按钮,程序将访问商品action层的addCommodity()方法进行商品信息的添加,然后商品action层调用商品类别service层的findCommodityClassById(commodity
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某化工厂物料存储管理细则
- 纺织品外贸出口流程细则
- 麻纺厂技术改造实施细则
- 某麻纺厂产品研发办法
- 地铁出入口基坑施工组织设计
- 预制装配式构件采购投标资料规范
- 施工材料台账核查制度方案
- 四年级数学下册期末试卷D卷(北师大版)考点深度解析与素养导向讲评教案
- 高中心理说课稿2025年情绪表达视频
- 2025-2026学年高二上学期寒假作业语文选择性必修上册第二单元知识梳理
- 2025年贵州省中考英语试题(附答案和音频)
- 2025年软件开发环境考题及答案
- 2024年国家民委直属事业单位招聘笔试真题
- 中职《劳动教育》课程标准
- 综合实践活动课程实施方案与实施指南
- 腾讯风控师(初级)认证考试题库(附答案)
- 《植物生产与环境》第二章:植物生产与光照
- 离婚报告范文
- 《国际商法》课件
- 消渴目病相关讲座
- JT-T-939.2-2014公路LED照明灯具第2部分:公路隧道LED照明灯具
评论
0/150
提交评论