版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
II眼下恰逢2020年全面建成小康社会,随着经济趋势的持续走高,我国消费结构也将随之偏移,中产阶级及以上人数将会越来越多,并对消费市场有着最大最深的影响力,人们在购物过程中将不仅仅注意到购买的物品本身还会对“服务”有着更高的要求,将更多注意力放在“购买体验”上。1.2中国与国外现状分析1.2.1国外电子商务历史与现状电子商务发展全程,大致可看成三个阶段:初始、形成、扩大。1、初始阶段可探究到19世纪的上半叶。那个时期电报的发明便使人们产生了对此在商业方向作用的思考。2、形成阶段伴随着电子计算机的发明。从20世纪中期起始,EDI已被承认为电子商务此阶段的主要传输方式。3、扩大阶段则是由于计算机互联网的诞生。在1990年代接近2000年的时期,计算机与Internet技术快速进步,在信用卡与虚拟网络保障协议的双向大规模推行的大背景下,电子商务切实的进入到了下一个新阶段。Amazon于1994年创立并于1995年成立电子商务部门,Business-to-Consumer这一概念于1996年首次提出。美国对于电子商务的嗅觉最敏锐,从先机者转向领导者,具体体现不论是世界市场的占有率亦或是前沿技术的领先。以英国、法国为代表等发达国家随后也通过对传统模式的创新跟上步伐,而赶上了市场。将时间线拉到当下,电子商务已经有了新的变化。在亚洲,以中国的例子作为典型,中国在世界范围内电子商务领域所扮演的角色越来越接近核心。亚太,拉丁美洲和中东等地区的发展规模与速度也十分可观,新地区的发展正以清晰可见的速度追赶着发达国家。新兴经济体会在以后取代现有经济体的地位。1.2.2国内电子商务历史与现状中国于第一时间便发展电子商务的国家而言,虽然晚了一步,但现如今已经没有人能忽视其的存在。1、1999-2002为起步阶段,电子商务的起步初阶获得动力,正式起步[4]。2、2003-2006年进入飞快成长,大量国外电子商务公司加入,与此同时也引进了前沿概念,同时期的阿里、当当等开始进入人们的视野。3、自2007年以来,国内的电子商务急剧增长。更大量的资金和技术手段进入,天猫、京东等平台在取得巨大的成功。以年轻人为先行军并带动中老年人参与其中,电子商务的出现改变了绝大多数人的消费习惯,也改变了社会经济的布局结构。不仅如此,每年的11月11日更是转变为变的购物狂欢节。“双11”从2009年开始。以下是过去是一年的数据报告:2009年5000万元2010年9.36亿元(同比增长1772%)2011年52亿元(同比上涨4倍)2012年:191亿。2013年:350亿元。2014年:571亿元(仅用13H超过2013年数据,在这一年里阿里巴巴上市)2015年:912.17亿元;2016年:1207亿元;2017年:1682亿元;2018年:2100亿元2019年:2684亿元。其中仅用时21秒破10亿,96秒破百亿,1小时3分59秒破千亿。惊人的交易额背后代表了大量的用户数量以及需求,且数据每年仍在大幅提高,完全有理由相信国内市场仍有潜力尚未挖掘,可以预见在未来相对持久的时间内,中国依然稳坐电子商务领域第一的交椅。 1.3当下的不足电子商务领域所取得的成果令人骄傲,但是历史的车轮滚滚向前也必然卷起些许尘土,规模的迅猛扩张也让人们意识到其中的一些漏洞。还有一些方面需要进一步完善。其主要问题有:1、互联网的覆盖率仍需持续加强。使得偏僻的山区、农村等地也能享受到电子商务的便捷。2、隐私保护问题。相关平台有责任做到保护客户个人信息,做到不泄露并防止信息被利用伪造。3、完善平台系统本身。使其在面对各种突发状况时仍能保持稳定。4、物流配送。当前市场的配送公司服务水平参差不齐,应对其有所筛选与监督管理,淘汰不合格的配送公司。5、相关法律不够完善。受限于发展时间的有限性,电子商务的法律法规仍有细节之处需要“查缺补漏”,有关部门应引起重视。为进一步促进电子商务的发展,可以从信息保护、升级系统、优化界面、丰富功能以及提升售后服务等方向入手,进而提升用户购物的满意度,提供对平台的评估质量[5]。
第二章相关技术介绍2.1Java与JSP2.1.1Java语言Java语言由Sun公司开发,是一种编程语言,面向对象,前身为Oak语言,旨在为了实现嵌入式程序的轻量级和跨平台操作。Java流行得非常快,不少大公司立即买下并投入使用,这其中包括Microsoft、Apple等公司。时至今日,JAVA仍然是最流行的开发语言。在编写和运行Java程序时必须同时使用Java虚拟机,应用程序接口等[6]。Java吸收了C++的大部分优势,强化了功能的同时使用起来更简单。Java语言具备了简单性,面向对象和可靠性等丰富特性。简单性:为了达到易于使用的目的,Java在设计过程中删除了C++中被用到频率很低的函数,例如跳转运算符。面向对象:Java由类进行组织,类是数据的集合以及在Java中处理数据的方法。它分别由特定的系统和层次结构来进行组织,好处是使其子类更方便的继承方法。可靠性:在编译扩充过程中,能够察验到某些潜在的类型不搭配。此外Java没有指针,由此杜绝了重复写存储。异常处理机制还极大地促进了从错误和任务处理中的恢复。编译和解释性:与一般编程语言不同,由Java编译后生成的是字节码,而一般编程语言会生成机器码[7]。代码更加可靠、稳定且可在任意装有Java解释程序和系统上跨平台运行。稳健性:由于Java不支持指针,在扩展编译的过程中能检验到一定数量潜在不匹配类型。好处是这样可以消除重写存储。以上的功能使得出错处置过程和任务复原难度降低了不少[8]。高性能:Java语言可在运行时将Java字节码转为特定CPU的机器代码,能够实时编译程序。基本达到全编译[9]。可移植性:明确说明每种基本数据类型的操作的大小和行为,操作系统必须以ANSIC等特征编写,因此Java语言本身具有高度的可移植性[10]。以上的优点并不是全部,Java还有如多线索性、动态性等多个优点,从而使得Java特别适合应用于电子商城的开发。站在简单性的角度,Java语言学习门槛相对较低,对初学者而言更易上手,且使用人数基数大具有大量学习资料。站在可移植性的角度:Java能够编译、解释以及具有可移植性,借由虚拟机可于不同操作系统工作。同时Java语言也有缺点。如在面对解释型语言的时候,运行速度效率极低,且并不支持底层操作。2.1.2JSPJSP全称为JavaServerPages,是由SunMicrosystems公司主导创建的一种动态网页技术标准,直译为Java服务器页面,由太阳微系统公司为主,其他公司参与并创建[11]。JSP的创造是为了处理Servlet在相应期间不宜向外生成页面的缺陷。JSP的任务是隔开表示逻辑与Servlet,由此简化Servlet[12]。JSP本质上是一段Java代码,可将网页页面的逻辑与显示分开,这有利于很大程度上简化开发过程。只要有浏览器,JSP便可以工作,并且可以跨平台。Java能用,JSP就能用。JSP主要由静态数据、JSP指令、JSP脚本元素与变量、JSP动作、用户自定义标签五要素组成【13】。静态数据的含义为文件在输入输出给HTTP相应的内容相同。JSP脚本涵盖out、page、pageContext、request、response、session。JSP操作是调用服务器上各种功能的大量XML标记。可见JSP具有的优势,如:单次编辑,可跨多处执行,可伸缩性强等。缺点来自优势,为满足优势种种优势,使得产品变得更加复杂,在某些情况下性价比相对较低。2.2框架介绍2.2.1SSM框架 SSM框架,三个字母分别代表Spring、SpringMVC以及MyBatis。SpringMVC是现如今受欢迎的MVC框架,新版增加注解配置,简化使用过程。Spring是轻量级框架,于2003年开始流行。这个框架的中心思想是控制反转,简化减少软件开发复杂性,只调用基础的的JavaBean类,就可以达到完成JavaEE服务器组件模型以前完成的大部分工作的效果,除此以外Spring还能帮助多数Java软件。SpringMVC在过程中检索用户申请,它的内核Servlet主要作用类似于转换枢纽,把用户申请由HandlerMapping匹配Controller,Controller再去具体行使动作。此外,新版SpringMVC伸缩性强,不会受别的MVC左右。三个都是开源框架,三者整合而成。MyBatis的功能在于借由精简的XML语言或注解配置底层映射工作,删减了大批JDBC代码以及人为配置过程,以达到普通Java对象与接口映射为数据库内容的目的。MyBatis精简,所占空间小,可以区别业务逻辑以及数据访问,有利于整体设计一目了然。2.2.2B/S架构B/S架构,B代表Browser,S代表Servlet。浏览器与服务器。人们可以通过各种电子设备,如:手机、电脑、IPAD内置的浏览器,连接到Internet,并由Web服务器与数据库服务器进行互动。因此可以很大程度上减轻硬件负担。B/S架构可分为三层:1、表示层:人们肉眼可看见的界面,用浏览器呈现。2、业务逻辑层:对于数据层的各类信息进行处理。3、数据访问层:对于数据库进行直接管理。2.2.3MVCMVC分别指代Model(模型)、View(视图)以及Controller(控制器)。它迫使程序将输入、处理、生成结果分开。MVC在B/S的表示层进行操作,功能为将表示层显示的更加具体。M、V、C分别担任不同职责。通常被称为线框模型。M将“通知变更”发送给V;V将“状态查询”发送给M;将“用户请求”发送给C;C将“视图选择”发送给V;将“状态变更”发送给M;三者成环,相互作用。MVC有耦合性低、重用性高、部署快、生命周期成本低等优点,其缺点在于不适用中小型规模程序、V与C间交互太紧、V对M数据访问效率低等。2.3MySQL数据库MySQL开放源码,能把多种不同种类型数据分类放在不一样的表内,而不是全放在一起,有利于工作提高效率。MySQL可跨多个平台使用,且具备可移植性,有多种连接方式。所占内存小,总成本低且易于上手,性能稳定、强劲,对于开发中小型Web,是十分合适的。 2.4Tomcat服务器Tomcat服务器由Apache与Sun公司共同创造,免费且开源,属于轻量级服务器。Tomcat虽然作为Apache的扩展,但其独立运行。多被用于中小型系统、并发使用者数量适中的情况下。Tomcat服务器在技术上走在前沿,且性能稳定,所以被许多Java使用者与开发商所青睐,目前是最经常被使用的Web应用服务器之一。
第三章需求分析3.1需求概述开发人员可以在做需求分析这过程中增加对客户的了解,因此,它是必不可少的一个环节。除此以外还能熟悉网购流程以及相关配套服务,在此基础上明确开发的主要方向。网购从某种程度上来说,是对传统交易的一种颠覆。两者的本质一样,形式却截然不同,带来的体验、服务等感受也不同。现如今网购已经走进千家万户,已经改变了绝大多数人的消费习惯,是生活的组成部分。以下是网购与传统购物的分析比较。站在网购的角度:人们摆脱了时间、空间的限制,随时随地可利用不同的电子设备寻找、浏览、比较、筛选自己心仪的商品,与传统购物相比更加自由。即使有时由于各种原因无法当下或者有犹豫情绪,也可以先加入购物车,获得了更多的考虑时间的同时也避免了在实体店面对面的尴尬。此外,随着技术发展,现如今的支付环境也有了保障,许多商铺也支持分期付款。唯一的不足便是无法实地看到商品,收货时可能与预想有所出入,不过也可以及时申请换货或是退款退货,并不会造成经济上的损失。站在传统购物的角度:消费者可以实地亲眼看见商品、分辨材质,并感受不同的环境氛围及服务,同时它的弊端也存在:必须空出一整个时间段来做这件事;实体店一般伴随着例如房租、员工工资等其他成本,所以价格会更高;商品单一,不如网购丰富;服务员水平参差不齐且要留意现金以及银行卡密码安全的问题。通过对于新旧两种购物方式的横向对比,能得出用户选择电子商务的主要原因,也为开发指明了方向:1、对系统本身的要求:系统稳定,不会奔溃现象;界面友好、操作便捷,适应成本低,新用户也能自主完成下单。2、保障利益:制定公正基本购物规则,保障售后服务,维护用户与商家的利益。3、安全性:保护用户基本信息,不泄露,以及保障支付安全。综上所述,电子商城在满足用户需求,投其所好丰富功能的同时也要对自身有所要求,做到对用户负责。3.1.1功能需求分析本次设计主要在于创立一个电子商城,实现网购操作。一共有三个角色:游客、用户、管理员。以下为三者的主要权限:表3-1主要模块及权限表游客查询、浏览、注册用户查询、浏览购物车内商品的增加、删除购买管理员用户信息的增加、修改、删除商品信息的增加、修改、删除订单的查看、删除(游客相当于用户的子集,所以不单列)用户游客通过点击“注册”,根据提示输入相应信息成为用户,注册成功,信息自动添加到数据库,注册成功后可登入。用户能够查看、修改自己的基本信息。可将任一商品加入购物车,并查看,可对购物车内商品数量进行任意修改、删除或选定特定商品点击购买。 管理员管理员负责保证系统的正常工作运行。管理员首先需要在后台登录,权限包括对商品信息增、删、改、查;管理用户信息。3.1.2数据需求分析在开发过程中要准确把握用户的实际需求,数据的收集、分析、处理是实际开发过程在中必不可少的一环。数据库的设计也基于数据的需求分析,这里主要涉及到数据流图。数据流图主要的面向对象是用户。数据流图展示简单的数据流向与逻辑两者间的转换。用户不必详细的了解软硬件间内在的技术细节。有利于软件开发人员与用户之间的交互。顶层数据流图展示了电子商城系统的边界,抽象出电子商城大致的功能与输入输出。如下图所示。图3.1顶层数据流图上图实体分别有:用户、游客和管理员。数据流图的具体含义:电子商城作为中间枢纽连接用户(游客)与管理员,用户(游客)通过中间的枢纽了解到商品内容,并通过它修改个人基本信息以及提交订单;管理员管理电子商城,可在后台看到用户提交的内容,并及时更新、调整商品信息。3.1.3非功能性需求透过需求概述可知到吸引用户的必备因素与基本条件,具体而有以下几项:1、稳定、值得信赖的系统:定期对系统检查、更新,熟悉、了解系统,做到对薄弱环节的风险预估,对可能出现的问题及早准备,以此做到能从危机中快速调整回原来的状态。2、使用方便、易上手。界面设计好看的同时要层次清晰,区域划分明显,让用户在具体操作中直接达到目的。3、性能有所保障:可不间断运行,能够处理庞大的数据以及多位用户的同时操作请求。4、系统的伸缩性:可在多个浏览器上正常运行,并随着发展能够增加更多细节功能服务于用户。5、系统响应时间:本系统可不间断运行,且能容纳多名用户的同时在线请求,同时处理,可达到并发量120/S,页面跳转等反馈效率小于2.5秒。6、稳定性:可在多种浏览器上稳定运行,如Chrome、360等常见浏览器。
第四章概要设计4.1概要设计概要设计能够将需求分析和详细设计相连接起来,旨在建立层次规律模型,并使得到的数据用软件结构表示出来。概要设计至关重要。4.1.1电子商城总体设计图4.1总体结构图在经过用户信息收集分析以及各项对比后,决定采用B/S架构。原因有以下几点:1、电子商城首要从安全以及处理用户请求速率两方面进行考虑,从创建以及重用的角度来看,系统更新的成本低,所以适合。2、对设备的要求,产品面向受众广,不必对硬件条件有太过苛刻的要求。电子商城在大体上以一种物理视角的来看,可以自上而下按序分为:表示、控制、逻辑、数据四层。在实际中,用户还要再比“表示”更上一层。表示层:直接呈现在用户眼前,由用户具体操作,不会触及到业务逻辑。控制层:主要安排业务模块的流程并发送参数,将经过处理的结果传送至表示层。逻辑层:实现功能,如把商品加入购物车,登入注册。在控制层与数据层之间作为桥梁,获取控制层数据并传至控制层。数据层:在数据库和逻辑层中起到枢纽作用,使数据能在二者之间传递,并关联到MyBatis的使用,降低过程成本、提升效率。 4.1.2电子商城模块设计电子商城的布局大致上分为前、后台两个板块。前台涵盖用户个体管理、购物车的增删、商品内容展现,后台简单来说就是对一切数据的管理与更新。图4.2前台结构功能图前台详细介绍如下:1、用户方面登录注册:游客点击“注册”按钮,依照提示输入相关信息并确认密码,再按注册信息便可顺利登陆。个人信息管理:在登陆后点击自己的头像便可对显示的个人信息进行更改,并能查看个人订单信息。2、商品展示:用户与游客能够直接看到商品的基本信息,也能在搜索框中输入关键字寻找想要的物品。3、购物车:购物车功能游客不具备,用户可以将所选商品加进入购物车,如果在已选商品上充分添加,则在原有基础上进行数量叠加。同样,用户也可以进入购物车页面,对选中的商品进行删除。图4.3后台结构功能图后台详细介绍如下:管理员对前台展示、用户信息、商品信息、订单等所有数据进行及时的增、删、改、查工作,及时更新,确保数据的即时、无误、有效,以保证各项工作正常展开。4.2数据库的概念结构设计在数据库中的主要逻辑角色以及他们的相关信息有如下所示:商品信息(编号、名称、价格、库存、图片展示)用户:(用户名、密码、手机号)管理员:(用户名、密码、编号)购物车信息:(状态、数量、用户名)以下为具体的E-R图:图4.3实体联系图以上为确定实体,在数据库中实体与实体间存在1:1,、1:n以及n:m的关系具体体现如下:用户对商品—n:m;用户对管理员—n:m;用户对购物车n:m;管理员对购物车--n:m;管理员对商品—n:m;管理员对用户—n:m;商品对购物车—n:m……(遍历所有搭配意义不大,便不再一一列举)4.3数据库物理结构设计这个阶段的目的在于为确定数据对象找到对应的存储结构以及方式。用户表,名称为User_Info表4.1用户表序号名称中文解释数据类型长度非空约束条件1U_id编号int√主键2U_name用户名var25√唯一约束3U_paword密码var15√4U_tel手机号var20√5U_gender性别var4管理员表,表名为Adm_form表4.2管理员表序号名称中文解释数据类型长度非空约束条件1A_id编号Int√主键2A_name用户名var25√唯一约束3A_paword密码var15√商品种类表,表名为Goods_Sort表4.3商品种类表序号名称中文解释数据类型长度非空约束条件1G_id编号Int15√主键2G_name称号var20√Null商品表,表名为Good_Info表4.4商品信息表序号名称中文解释数据类型长度非空约束条件1G_id编号Bigint25√主键2G_name名称var40√3G_price定价Decimal(12,2)√4G_amount库存IntNull5G_pic图片var60Null购物车表,表名Shopping_trolley表4.5购物车信息表序号名称中文解释数据类型长度非空约束条件1S_id编号Bigint30主键2G_id商品编号Bigint30外键3G_num商品数量Int4U_id用户编号Int外键5S_status购物车状态var
第五章详细设计与实现5.1系统开发运行环境此次开发环境数据如下:操作系统:Window10硬件环境:Intel(R)Core(TM)I5-6200u
CPU
O
2.30GHZ
2.40
GHZ开发工具:EclipseIDEforJavaDevelopers4.5.1数据库:NavicatforMySQL10.0.10服务器:Tomcat7.0浏览器:Chrome605.2系统实现架构本次开发由Java语言编写,结合SSM框架,大分为Controller层、Business层、Service层以及Mapper封装的DAO层。用户访问指定网站,Controller向下一级接受信息,向服务器接收信息,多数逻辑布局于服务器端。Controller把控工作的大体顺序,当JSP响应用户紧接着通向Controller,Controller基于不同要求从Business调取相对应的代码。DataBase能够直接调用DAO接口,将SQL语句输入XML内并返回,Service层拥有外部以及数据库服务且封装在DataBase层。以上论述逻辑用图表示:图5.1逻辑用图5.3数据库物理结构设计数据库的物理设计根据电子商城具体特征,为已确定的数据库模型选择适合存储结构与方式。下面是对数据库表设计说明。1、管理员信息表,名字Admin_Info。表5.1管理员信息表序号属性名称中文描述数据类型长度空/非空约束条件1a_id编号intnotnull主键,自动编号2a_name名称varchar40notnull唯一性约束3a_password密码varchar40notnull4a_email邮箱varchar40notnull5a_memo备注varchar60null2、用户信息表,名为User_Info。具体信息如下:表5.2用户信息表序号属性名称中文描述数据类型长度空/非空约束条件1u_id编号int主键,自动编号2u_name用户名varchar30notnull唯一性约束3u_password密码varchar30notnull4u_tel电话号码varchar15null5u_email邮箱varchar30null3、商品信息表,名为P_Info。具体结构如下:表5.3商品信息表序号属性名称中文描述数据类型长度空/非空约束条件1p_id编号bigint20notnull主键2p_name名称varchar30notnull3p_price价格decimal(11,2)notnull外键4p_quantity库存量intnull5p_picture图片varchar50null 4、商品类型信息表,名为Product_Type。具体结构如表所示:表5.4商品类型信息表序号属性名称中文描述数据类型长度空/非空约束条件1t_id编号int11notnull主键2t_name类型名称varchar30notnull3t_info类型描述varchar30notnull4t_memo商品类型备注varchar50null5、购物车信息表,名为Shopping_Car。其中,s_id是主键且会自动编号递增。具体结构如表所示:表5.5购物车信息表序号属性名称中文描述数据类型长度空/非约束条件1s_id购物车编号bigint20notnull主键,自动编号2p_id商品编号bigint20notnull外键3p_number商品数量intnotnull4u_id用户编号intnotnull外键5s_status购物车状态varchar5notnull6、此表储存用户订单基本信息,除订单备注外,其他都是非空项。商品订单表,名为Product_Order:表5.6商品订单表序号属性名称中文描述数据类型长度空/非约束条件1po_id订单编号varchar30notnull外键2po_pay支付方式varchar10notnull3u_id用户编号intnotnull外键4po_name买家名称varchar30notnull5p_receiver收货人varchar30notnull6po_address收货地址varchar50notnull7po_tel电话号码varchar20notnull8p_postcode邮编varchar10notnull9p_total总金额decimal(11,2)notnull10po_status订单状态varchar5notnull11po_memo订单备注varchar50null订单详情表,表名为Order_Detail。结构如表所示:5.7订单详情表序号属性名称中文描述数据类型长度空/非空约束条件1od_id订单详情编号bigint20notnull主键,自动编号2po_id订单编号varchar30notnull3p_id商品编号bigint20notnull外键4p_name商品名称varchar30notnull5p_price商品价格decimal(11,2)notnull6p_number商品数量intnotnull7od_memo详情备注varchar50null5.4模块的设计实现5.4.1用户注册未注册的用户称之为游客,游客只能浏览,注册成功并登陆即正式成为电子商城的用户,获得用户权限。游客在注册过程中需要根据提示依次输入相关个人信息,其中包括个人电话号码与密码,并在数据库中检索号码是否已存在,如已存在,则会弹出相应提示,并要求更换号码注册;如不存在,则弹出注册成功的反馈。其中,通过正则表达式来验证账号密码是否符合规则。如果注册的账号已存在于数据库,用户将看到注册失败的结果;如果不存在,则注册成功,返回结果。图5.2为用户注册流程图图5.2 用户注册流程图5.4.2用户登录只有注册成功后才能登陆。输入账号密码,系统自动检测用户名、密码是否匹配,或在数据库查找账号、密码的是否存在,若不存在或不匹配,登录失败,并弹出提示。反之,则成功登录。图5.3为用户登录流程图图5.3 用户登陆流程图用户登入类:LoginController引入CustLoginBusiness类,定义并实现login()方法,此方法内部调用CustLoginBusiness类的login()方法。LoginBusiness类内部调用IUserInfoService接口的select()方法,此方法具体在UserInfoServiceImpl类中实现,该类引入UserInfoMapper接口,select()方法内部使用接口的findUserBySelective()方法实现。findUserBySelective()方法具体实现的是从页面获取到对象并与用户信息表的账号和密码项进行对比,确定是否匹配。具体登入如图5.4用户登入类图所示图5.4 用户登入类图5.4.3购物车模块购物车模块可以将用户心仪商品暂时存放起来,用户可对购物车部分随时进行增、删、改、查的操作,或是进入购物车,选定指定商品,下单结算。具体流程为:浏览→→选定并加入购物车→→成功判断是否继续浏览,是则重来,否就判断是否结算→→结算→→生成订单;不结算→→结束。具体购物流程图如5.6所示:图5.6 购物流程图游客登入成功后,浏览商品,选择要加入购物车的商品,在加入时会自动判断库存是否还有,如果为0,则无法加入,如果不为0便可以加入。加入购物车后的商品可以进行数量上的修改。可以在购物车页面直接进行确定购买。购物车实现的类图,如图5.7所示。图5.7 购物车类图其中CartController类的属性是CartBusiness,主要有增加、删除、修改、查询四个方法。CartBusiness中的属性是CartService,主要方法也是增删改查,这个类是具体的实现类。接来下是ICartService接口以及它的实现类CartServiceImpl,最后是对数据库购物车表的操作类CartMapper。同时IProductService接口以及它的实现类ProductServiceImpl,对数据库操作类ProductMapper主要是通过select()方法对数据库商品信息表中商品进行查询。删除操作方法在Service层叫delete(),方法具体实现可以调用mapper的update()方法更新标记,即购物车状态项。5.4.4管理员后台模块管理员作为电子商城秩序的维护者,在后台直接通过数据库对用户以及商品、订单信息进行管理、更新。下面以管理员订单管理类图为例。图5.8管理员订单管理类图ManageOrderController类的属性是manageOrderBusiness,主要方法为查询、删除、修改。ManageOrderBusiness中的属性是orderService和orderDetailService,主要方法同样也是查询、删除、修改。接来下是OrderService接口以及它的实现类OrderServiceImpl,OrderServiceImpl的属性为orderMapper。最后是数据库商品订单表的操作类OrderMapper,通过findOrder()方法和updateOrder()方法进行数据库中商品订单表的查询和更新操作。同时OrderDetailService接口以及它的实现类OrderDetailServiceImpl,OrderDetailServiceImpl类的属性为orderDetailMapper。调用对数据库操作类OrderDetailMapper,主要是通过两个方法:findOrderDetail()方法和updateOrderDetail()方法,对数据库订单详情表中的信息进行查询和更新。第六章系统测试软件测试是为了验证工作运行结果是否符合开发人员预先设计,是在软件投入使用、面向用户前的最后检验。从实际作用角度而言,测试的核心目的就是找到漏洞,越早发现,修正成本越低。所以,软件测试是开发过程中必备环节。6.1功能测试本次测试由于组成板块较多,故选择几处有代表性子集来反映系统整体。采用等价划分法,思路是以有代表性的部分来体现整体。以下为成功注册信息,存于数据库表6.1测试用例表序号用户名密码1Lisaaabbccdd2Zoomabcabc(1)注册功能。表6.2注册测试信息表测试用例编号01测试类型功能性测试测试目的测试能否注册成为用户测试角色游客前提背景游客正常浏览电子商城测试情况数据描述预计反馈测试结果注册时空着用户名或密码注册时先后空着其中一个,再两个都空提示补全注册信息注册信息有所缺漏,需要补齐用新的号码注册输入未注册过的号码,并按规则设置密码注册成功与预计一致将注册成功的号码重复注册按规则设置密码并从数据库中挑一个号码输入弹出当前注册对象已存在当前号码已存在,注册失败注册完成,数据库及时录入新数据注册用户名为Lisa密码为aabbccdd数据库增加一个“Lisa”用户数据库成功增加“Lisa”用户图6.1游客注册图图6.2注册成功跳转图点击注册,当注册成功后页面会自动跳转至登录页面。从以上操作可以看到,注册功能可运行,并无太大漏洞。(2)登陆功能。表6.3登入测试信息表测试用例编号02测试类型功能性测试测试目的测试用户登陆功能测试角色注册用户前提背景已成功注册用户测试情况数据描述预计反馈测试结果正常输入已注册的用户名、密码输入序号一的信息成功登录与预计反馈一致输入错误的密码输入:用户名Lisa密码123456提示失败信息登陆失败漏掉用户名或密码只输入用户名或密码提示失败信息登录失败图6.3登录成功图由此可见,登陆功能基本实现,能够正常运行。 (3)购物车功能。背景:游客成功登录。表6.4购物车测试信息表测试用例编号003测试类型功能性测试测试目的测试购物车的功能运行情况测试角色注册用户前提背景游客成功登录测试情况数据描述预计反馈测试结果选择商品并加入购物车输入数量为1在表示层显示购物车物品+1,数据库也相应更新购物车成功添加1个选择的商品删除购物车的某一商品无被选中的商品被移除与预计反馈一致修改购物车中商品数量将编号为004的商品数量有1增加到5被选中商品数量由1增加到5与预计反馈一致6.4购物车添加图图6.5购物车删除图图6.6购物车数量修改图(4)后台管理人员对用户、商品权限功能。表6.5管理员测试信息表测试用例编号004测试类型功能性测试测试目的测试后台管理人员对用户、商品权限功能的实现测试角色管理员前提背景成功登录后台测试情况数据描述预计反馈测试结果输入关键字搜索用户名,返回相应结果在搜索框输入“Lisa”找到“Lisa”用户成功找到用户“Lisa”修改商品信息先通过关键字搜索到对应商品,再对其进行增、删操作商品在显示层与数据库随着管理员的操作增加或删减和预计反馈一致
图6.7后台用户搜索图图6.8后台用户搜索成功图图6.9后台商品搜索图图6.10商品搜索成功图图6.11后台商品信息修改图图6.12商品信息修改成功图可见,管理员对商品与用户的管理功能都基本实现。第七章总结与展望电子商务借助因特网这阵大风,扩展至全球。网上购物促进了各国的经济发展以及合作,以其无可替代的优势迅速进入大众生活,改变消费习惯,改变了市场结构。是今后大数据发展的方向之一,眼下正逢2020全面建成小康社会,随着技术、经济、法律等条件趋于成熟,必将进一步推动电子商务的前进,有理由相信今天的电子商务不是重点,还有许多有价值的潜力等待挖掘。本文对电子商务的大致情况进行了分析整理,谈到优、劣势并结合时代背景叙述其存在的意义。以Java语言为基础,利用B/S、MVC、SSM三个框架实现了电子商城。其中还有不足之处,例如MVC的View和Controller太过紧密等问题。希望在未来可以进一步优化升级系统,为用户带来更精细化的服务。
参考文献[1] 严伟:《中小企业发展电子商务的研究》,载《科技管理研究》,2008年第10期,第117页。[2] 王培凤:《数字图书馆中的电子商务服务》,载《兰台世界》2006第1期,第60页。[3] 党倩娜:《全球电子商务发展总体态势分析—电子商务2.0时代来临》,载《上海商业》,2015年第10期,第28页。[4] 庄海彬:《B2C电子商务发展策略研究》,载《商情》,2013年第42期,第238页。[5]CaoM、ZhangQ、SeydelJ:《B2Ce-commercewebsitequality:anempiricalexamination》,载《IndustrialManagement&DataSystems》,2005年第5期,第650页。[6] 海丽切木·阿布来提:《Java技术及其组成》,载《福建电脑》,2009年第8期,第45页.[7] 党石宇、廖湖声:《Java字节码编程语言设计及实现》,载《全国Java技术及应用大会》,2003年[8] NelsonG:《ExtendedStaticCheckingforJava》,MathematicsofProgramConstruction、SpringerBerlinHeidelberg,2004年。[9] 杨旭辉、周庆国、韩根亮等:《一种基于源代码的Java代码混淆器的设计与实现》,载《甘肃科学学报》,2015年第2期,第28。[10]付兵、周贤善:《在理工类专业计算机课程体系中引入Java的探索》,载《全国高等院校计算机基础教育研究会2006年会》,2006年。[11]马云飞、张良均:《利用JSP开发动态Web应用系统》载《现代计算机》,2000年第1期,第22页。[12]颜志军:《JSP与Servlet程序设计实践教程》,北京:清华大学出版社,2012年。致谢光阴似箭,时光如梭。转眼四年的时光就过去了,16年进入滇池学院的场景现如今回想起来仍然历历在目。第一次来昆明,第一次看到学校,走进学校,以及不久后到来的军训……那些记忆与感受如幻灯片似的在我的脑海中闪过,不知不觉中又迎来了一段旅程的终点。回首这一路,在不知不觉中增长了经历,也学习到了很多。有许多人需要感谢,并对生活抱有感恩的态度,在此要感谢我的父母,我的朋友们,在这四年中的每一个老师、同学们,以及每一个遇见的人,父母、朋友们提供支持,老师传授了知识,同学之间有友谊,遇见的每个人、每件事的经历组成现在的我,我认为所有出现在生命中的因素都有值得学习的地方,在此,我由衷地感谢这四年里所有相遇的人。首先要感谢的是辅导员段俊荣老师,谢谢你曾今与我的谈话,让我在犯下错误的时候明白了事理,虽然你只带了我们大学生涯的头两年,但却给我留下了深刻的印象。我从你的身上学会了谈吐语气应该温和,思路清晰应有逻辑,并富有耐心。遇事冷静沉着,不慌不乱,解决问题依旧要以逻辑作为思维的导向。走一步,再走一步。有你作为辅导员,是我们的幸运。其次要感谢的是邵晶晶老师,她是我们软件工程一班的班主任,在此次毕业论文上也对我帮助极大。我仍记得第一次上线性代数课的场景,在正式讲授教学内容之前她对刚步入大学校园的我们进行了动员与鼓励,结合了自己的经历,列举了她当年考研的例子,用她舍友的话来讲,只有在早晨和晚上睡觉才能看到她的身影。其余时间都用在了备考上,鼓励我们认真学习的同时也告诉我们适当社交的重要性。从她的故事中能感受到向上的力量,从她的叙事过程中能感受到一种干练,感谢您对我本次论文的监督与用心修改。最后要感谢家人与朋友们,谢谢你们在我遇到挫折、困难、迷茫的时候陪伴着我,开导我,帮助我一步步向前走。你们的存在让我在灰心丧气的时候明白我并不是一无所有,我还有一片坚实后盾,一步后退的空间。你们也像一面面镜子,让我可以在看到你们优秀的习惯以及和你们分享想法的时候看到自己不足,并加以借鉴。四年的时间说长也长说短也短,这里还要感谢滇池学院这四年来科学的教学安排,为我们提供了一个良好、安全、方便的学习环境,使我在意识到学习的重要性的同时安心把心思放在上面。最后,感谢在学校里经历的一切,感谢滇院,这里在我的岁月里留下了痕迹,是我青春的一部分,希望无论是学校还是我个人在未来都约来越好,持续进步,持续向前。由衷祝福一切安好!
附件:关键源代码://前台登录 @RequestMapping("login.do") publicStringcheckAdminLogin(Sysuseruser,HttpSessionsession){ Map<String,Object>u=newHashMap<String,Object>(); System.out.println("name==="+user.getUname()); u.put("uname",user.getUname()); u.put("pwd",user.getPwd()); u.put("utype","会员"); user=userService.adminLogin(u); if(user!=null){ session.setAttribute("user",user); System.out.println("user="+user); session.removeAttribute("suc"); return"redirect:showIndex.do"; }else{ session.setAttribute("suc","登录失败!用户名或密码错误!"); return"fore_login"; } }//后台登录 @RequestMapping("admin/alogin.do") publicStringcheckLogin(Sysuseruser,HttpSessionsession){ Map<String,Object>u=newHashMap<String,Object>(); System.out.println("name==="+user.getUname()); System.out.println("pwd==="+user.getPwd()); u.put("uname",user.getUname()); u.put("utype",user.getUtype()); u.put("pwd",user.getPwd()); user=userService.adminLogin(u); if(user!=null){ session.setAttribute("auser",user); System.out.println("auser="+user); return"admin/index"; }else{ return"admin/login"; }}//后台注销登录 @RequestMapping("admin/loginout.do") publicStringadminLoginOut(HttpSessionsession){ session.removeAttribute("auser"); return"redirect:login.do";}// 验证用户名是否存在 @RequestMapping("checkUname.do") publicvoidcheckReg(Sysuseruser,HttpServletResponseresponse){ Mapmap=newHashMap(); map.put("uname",user.getUname()); System.out.println("uname==="+user.getUname()); System.out.println("uname222==="+userService.checkUname(map)); JSONObjectobj=newJSONObject(); if(userService.checkUname(map)!=null){ System.out.println("uname233333333333==="); obj.put("info","ng"); }else{ System.out.println("uname255555555555555==="); obj.put("info","用户名可以用!"); } response.setContentType("text/html;charset=utf-8"); PrintWriterout=null; try{ out=response.getWriter(); out.print(obj); out.flush(); }catch(IOExceptione){ e.printStackTrace(); }finally{ out.close(); } }//分页模糊查询 @RequestMapping("admin/vagueNewsList.do") publicStringvagueNewsList(@RequestParam(value="page",required=false)Stringpage, ModelMapmap,HttpSessionsession){ if(page==null||page.equals("")){ page="1"; } PageBeanpageBean=newPageBean(Integer.parseInt(page),PageBean.PAGESIZE); Map<String,Object>pmap=newHashMap<String,Object>(); pmap.put("pageno",pageBean.getStart()); pmap.put("pageSize",pageBean.getPageSize()); inttotal=newsService.getCount(null); pageBean.setTotal(total); List<News>list=newsService.getByPage(pmap); map.put("page",pageBean); map.put("list",list); session.setAttribute("p",2); return"admin/list_news"; } @RequestMapping("admin/deleteNews.do") publicStringdeleteNews(intid){ newsService.delete(id); return"redirect:newsList.do"; } // 文件上传 publicStringfileUpload(@RequestParam(value="file",required=false)MultipartFil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年土地承包经营权流转土地经营权流转项目评估合同范本3篇
- 2024年度企业实习生综合能力培养劳动合同2篇
- 2024年度民间借款合同示范文本(含借款人信用评估)3篇
- 2024年林权分享采伐协议
- 洛阳师范学院《急危重症护理学(含灾害护理学)》2023-2024学年第一学期期末试卷
- 科技园区秩序维护合同模板
- 2025产品授权销售总代理合同书
- 古建筑修复工程分包合同施工合同
- 商务大厦彩钢瓦屋面改造合同
- 市区环境监测数据统计分析方法
- 国际标准《风险管理指南》(ISO31000)的中文版
- (完整版)外研版高中英语必修三单词表(带音标)
- MOOC 国际商务-暨南大学 中国大学慕课答案
- 特征值与特征向量
- 作家协会2024年下半年工作计划3篇
- 2024征信考试题库(含答案)
- 个人理财(西安欧亚学院)智慧树知到期末考试答案2024年
- pc(装配式)结构施工监理实施细则
- 医院内审制度
- 押运人员安全培训课件
- 给小学生科普人工智能
评论
0/150
提交评论