周一至周五 | 9:00—22:00

期刊论文网 > 信息科技期刊 > 互联网技术 > 最新互联网技术论文 基于Java Web技术的商城系统设计

最新互联网技术论文 基于Java Web技术的商城系统设计

最新互联网技术论文 基于Java Web技术的商城系统设计

2018-11-29 11:36:16来源:期刊投稿网作者:婷婷
期刊杂志栏目设置

  摘要:本项目的前端所使用的是node.js与npm组合,后台使用Spring、SpringMVC与Mybatis技术组合,数据库选用MySQL,实现了一个完整的商城系统。该系统包含简洁、美观的用户交互界面,稳定可靠的交易逻辑,力求给用户带来出色的使用体验。在实现系统功能的过程当中,主要解决了浮点型数据丢失精度的问题,横向越权问题,纵向越权问题,单边账问题等等。在数据交互的层面,使用了json格式数据交互的典范。在Java中使用了jsonObject去解析json格式的数据。用json替代传统的xml格式的数据,减少了多余的数据传输,降低用户的流量所带来的压力,也增加了系统的响应速度。在本项目中也使用了一些第三方插件来提升开发效率(例如Mybatis Generator)。为了保证项目开发的稳定性与便捷性,本项目使用了项目管理及自动构建工具maven与版本控制工具git。Maven大大减轻了我们搜索第三方依赖所需要的精力,让我们专心于开发。Git则是为了给项目稳定性提供保障。由于我们所要实现的功能是不断变化的。如果我们想添加某个功能,最后这个功能没做好,而且还影响了之前通过测试的功能,我们就需要git来进行版本回退。

  关键词:互联网;商城系统;数据交互;第三方插件

  引言

  自从计算机技术研究取得了不错的进展,网络技术的日趋成熟改变的不仅仅是人们的生活习惯,还有生活方式,比如说购物。互联网的跨时空性质与可交互性使得网上购物与其他传统购物相比具有难以忽视的优势 。其便利性使得人们坐在家中,动动手指就能够买到心仪的产品,因此越来越多的人倾心于这种购物方式。对消费者来说,网上购物相当于花更少的钱买到更好的产品,而且还节省了大量的时间于精力,这对于当今快节奏生活的人们来说是十分宝贵的。同样,对于商家来说,网上商城即降低了运营成本,又可获取更大的利益。

  从作为中国“新四大发明”之一的淘宝的流行,到天猫,京东等类似商城的竞争,还有各大网络商城平台在“双十一”等时段屡创新高的交易额来看。网上商城已融入现代人的日常生活。所以,本次毕业设计题目的选择有其实际的意义。

  通过完成这样一个毕业设计,不仅可以提高自己的编程水平,还可以充分了解一个完整的系统的建造过程,从最初的系统需求分析与设计,再到具体的编码实现,到最后的运行与测试,熟悉并掌握一个完整的Web开发流程。

  1 课题研究综述

  论文框架

  本论文主要分为四个部分,系统是阐释了商城系统从设计开发到最终实现的全部流程。

  第一部分,重点介绍了该系统开发的时代背景、详细目标和实际的重要意义。

  第二部分,重点介绍了该系统的项目框架与开发过程当中所使用的工具和技术。

  第三部分,主要对网上商城系统所需要的功能进行分析、设计与实现。介绍了网站系统的架构与在技术实现上所存在的难点。

  第四部分,主要对各个功能模块的实现给出最终效果图并进行相应的解析描述。

  课题背景

  互联网从开始普及到经历快速发展,这其中对人们生活方式所产生的潜移默化的改变,使得人们对迅速,便捷的追求日益增加。这在网上购物上可以明显的看到,替代传统购物而在网上购物已逐步成为现代人购物的“新方式”。

  网上商城是电子商务与其他各类高科技手段相紧密结合的代表性产物。网上商城充分发挥了互联网的跨地域性与可交互性,使得商家与消费者即使相隔天南海北仍然能够进行交易,所以网上商城自出现以来便已我们难以估量的速度发展到了现今我们所看到的庞大规模,并有屹立不倒,在继续向前发展的趋势,我相信网上商城的发展并没有到达终点,随着人们需求的巨大化,多样化,网上商城的发展必将迎来一波新的高峰。

  课题目的和意义

  网上商城作为一个“新兴的产业”,从出现到被大众所接受,其优势显而易见:对于商家来说它投入少,回报快,不需要租门面,不需要过多的资金。对消费者来说它商品更实惠,厂家直销,绕过中间商;更具便利性,不需耗费更多的时间与精力,送货上门;24小时的营业时间,不受气候与人为因素的影响。但网络商城也有其弊端,互联网的虚拟性使得交易的真实性与安全性难以得到保障。但瑕不掩瑜,这非但不能阻止网上商城的发展,还使得网上商城向更完善,更人性化的方向进一步发展。

  本次毕业设计所研究设计的网上商城系统在现有网上商城系统的基础上设计出交互更简单,界面更美观的网上商城。它有前后台两个部分并且两部分的操作完全分开。主要实现的功能有前台的用户商品查找、浏览、购买等功能与后台的管理员对商品各种信息的管理。

  2 系统项目框架与关键技术

  2.1 本项目使用到的开发框架

  本项目在后端开发过程中用到了SSM框架。即:Spring框架,Spring MVC框架,Mybatis框架。Spring框架用于更加快捷简便的组装应用程序,它允许声名式事物管理器,简化了事务的划分使之与底层无关。Spring MVC框架使用模型、视图、控制器的体系结构来进行更灵活的、松散耦合的web应用程序开发。在Spring MVC框架中,模型层封装了应用程序数据,一般来说存档在pojo中。视图层用于呈现数据模型,通常用于和前端结合展现出用户需要的页面数据。控制器主要用户处理用户请求,并且构建合适的模型来处理业务逻辑。Mybatis则是一个支持手动书写复杂 SQL逻辑、自定义存储逻辑以及高级映射的热门持久层框架,主要负责与数据库相关的操作。在前端开发中主要用到了node.js与npm包管理工具SEM广告数据分析系统的设计与实现。Node.js是前端主流的运行环境,基于JavaScript语言。Npm则是包管理器。在前端开发中使用到的包各种各样,而npm就是集中管理这些我们常用的第三方资源的工具。

  2.2 本项目中使用到的关键技术

  2.2.1 JSP概述

  JSP(JavaServer Pages)是一种实现普通静态HTML和动态HTML混合编码的技术,也就是动态网页技术,其页面文件通常以.jsp为扩展名,可以安装到任何能够存放普通Web页面的地方,其设计的目的在于简化表示层的展示。

  2.2.2 Spring概述

  Spring是一个开放源代码的分层的(一站式)轻量级设计层面Java开发框架,使得应用程序的组建更加快捷简易。

  2.2.3 Mysql概述

  Mysql是当下的一个主流关系型数据库管理系统之一。具有体积小、速度快、成本低、代码可移植性强等特点。

  因为其开放源码,适合中小型网站的开发,适合本次课题的设计。

  2.2.4 Tomcat概述

  Tomcat服务器是开源的免费的web应用服务器。因为其技术先进,性能稳定,成为目前较为流行的Web应用服务器。

  2.2.5 Maven概述

  Maven是一个项目管理工具,能够很方便的管理项目报告,生成站点,管理JAR文件等,还有程序构建能力高,缺省构建规则可重用性高等特点 。

  2.2.6 Git概述

  Git(分布式版本控制系统)是一个开源的分布式版本控制系统,能够有效、高速的处理从很小到非常大的项目版本管理。

  2.3 本项目中使用的扩展技术

  本系统虽然是一个小型的网上商城系统,但是实现了所有主要的网上商城所需要的功能。在实现这些功能时,我们做出了一些拓展,便于以后如果有需求的话可以进行功能拓展。

  2.3.1 关于数据安全与存储容量的拓展

  计算机中存在“短板效应”,硬盘设备已渐渐成为当代计算机的性能瓶颈。主要原因就是硬盘设备的IO速度相较于CPU的IO速度太慢。于此同时,硬盘设备需要频繁的、大量的进行IO操作。因此硬盘损坏与数据丢失的可能性大大增加。

  本项目中所用到的RAID(独立冗余磁盘阵列)技术,在有限的服务器空间内,进行合理的划分,牺牲了一部分存储容量换取了更高的数据安全性。为了便于以后项目拓展,本项目使用了RAID10技术。RAID0技术有着高读写速度,容量大的优点,缺点是数据安全性没有保证。RAID1技术则尽可能为数据安全性提供保障,缺点是硬盘利用率低,而且是硬盘越大,数据安全性越高,硬盘利用率越低。

  RAID10则是两种技术的结合体。集合了RAID0的高读写速度与RAID1的数据安全性。缺点就是硬盘利用率依旧不高。在这项技术中至少要四块硬盘来组建,其中两块硬盘组成RAID0结构,另外两块硬盘组成RAID1结构,理论上讲,只要不是同一组中两块硬盘全部损坏,都可以进行数据回复。本项目中暂时使用这项技术,如果以后用户增多,可以随时扩展硬盘进行微调,时刻保证数据安全性与读写速度。

  2.3.2 防火墙配置

  上面提到的数据安全性指的是在硬盘损坏时恢复数据的可能性。在我们讲项目部署到服务器后,我们还需要进行防火墙配置。防火墙本质上就是依据策略对穿越防火墙自身的流量进行过滤。本项目中在服务器配置的防火墙工具是iptables.

  本质上iptables与当下最新的firewalld都不是防火墙,他们的作用类似,都是定义防火墙相关的过滤规则。Iptables会把配置好的过滤规则交给内核层面的netfilter过滤器进行处理。通常来说从内网发送到外网的数据都是可控的、良性的,因而在本项目中我们配置了input规则链,防止被黑客入侵。

  3 系统设计

  3.1大型电商系统架构

  对目前主流的电商而言,系统架构的重要性显而易见。他们在设计系统架构的时候,要考虑到的方面很多,比如:如何保证应用安全,如何保证数据安全,如何保证前端体系安全等等。这还只是上图中安全体系系统的部分。图3-1还包括业务运营服务系统与各个共享系统的分层架构设计。

  在图3-1中还有一些十分重要但是不易表达的部分,例如如何实现程序的高可用性,如何实现双机房容灾与异地单元化部署。正是这些精细的逻辑架构设计,支撑了淘宝、京东上亿的流量,保证他们的业务时刻安全、快速的运行。

  图3-1 大型电商系统结构图

  3.2需求分析

  3.2.1 可行性研究

  无论是从经济、技术、法律还是应用方面来看本次设计的系统是可行的。

  经济可行性:本次设计作为大学毕业的一次检验,几乎不存在经济成本。而若是作为实际投入市场的产品,前期可能会花费较多的资金,但从长远来看,这是一个高回报的事情,具备经济可行性。

  技术可行性:本次设计使用了SSM框架,MySQL数据库以及Maven和Git工具。这些技术已发展成熟,能够设计出具有基本功能的网上商场系统。此外,我们还可以在现实生活中成功的网上商城系统上借鉴经验,具备技术可行性。

  法律可行性:本次设计以考察专业能力为主,不存在商业方面侵权等问题,且由我独立设计,具备法律可行性。

  应用可行性:本次设计得到现有成熟技术的支持,在一般操作系统上皆可运行。即使投入市场,也具备一般网上商城的基本功能,能正常使用,具备应用可行性。

  综上所述,本次设计能够实现,是完全可行的。

  3.2.2 功能需求分析

  本项目也是一个电商系统,电商的基本功能我们都要实现。大体功能可分为几个不同的模块,详情见下图。

  网上商城系统前台功能结构如图3-2所示:

  图 3-2 系统前台功能结构图

  具体主要功能:

  前台:(1)注册登录功能;(2)商品展示与分类功能;(3)购物车功能;(4)完善个人信息功能;(5)商品不同方式的查询功能(如按类,按名);(6)商品排行功能。

  用户在使用本系统时,必须要先注册账户并登录才能进行购买商品操作。如果不进行登陆/注册,用户只能在网站首页浏览商品简介与商品详情,不能进行下单结算.

  网上商城系统后台功能结构如图3-3所示:

  图 3-3 网上商城系统后台功能结构图

  后台:(1)商品的上下架设置;(2)商品简介与商品详情配置的查看;(3)商品信息的增删改查功能。

  对于后台管理员来说,必须要登录才能进行相关操作。

  此外还有美观的界面,简单易懂的操作。本项目设计的初衷是方便周围的同学使用,至少在现阶段目标用户只是本校学生。因此在流量上面的要求与大型电商系统很不相同,其他方面与大型电商无异。

  3.2.3 数据流分析

  本次设计的系统的数据流程详情可见如图3-4和图3-5所示。

  图 3-4 前台用户流程图 图3-5 后台管理员流程图

  3.3 系统角色及其功能

  系统的使用者大致可分为三种:

  浏览网站的普通用户,即游客:只能够浏览商品;

  在前台网站注册过的用户:可登录,退出;对购物车进行添加,删除,结算商品操作;生成、查看订单;编辑个人信息等。

  用户用例图如图3-6所示:

  图 3-6 用户用例图

  后台网站管理员:必须登录,后可查看信息。主要是对商品的一系列管理。可退出系统。

  管理员用例图如图3-7所示:

  图 3-7 管理员用例图

  3.4本项目的系统架构

  很明显上面说到的大型电商系统架构是一个高大上的,含金量十分高的系统架构。但是这并不是本项目使用的系统架构。原因有很多,最主要的一点就是:在项目上线初期很难预估到十倍、百倍以上流量的情况。当然,在项目初期也不会有这么大的流量。当然一开始就可以按照千万级并发流量的目标进行系统设计,但是这又会引出另一个问题:成本太高。本项目当前使用的系统架构是单服务器架构。数据库、服务器、应用文件都是部署在一个服务器上面。单服务器系统架构如图3-8所示。

  图3-8 单服务器系统架构

  3.5 系统的数据库设计

  3.5.1 User表(用户信息表)

  用户信息表用来存储所注册的普通用户员的信息。User表的结构如表3-1所示:

  表3-1 会员信息表

  字段名数据类型(精度范围)长度约束条件说 明idint11主键用户表idusernameint50用户名passwordvarchar50非空用户密码,MD5加密emailvarchar50电子邮箱phonevarchar 20电话号码questionvarchar100找回密码问题answer varchar100找回密码答案roleint4非空角色0-管理员,1-普通用户create_timedatetime创建时间update_timedatetime最后一次更新时间

  3.5.2 Cart表(购物车信息表)

  购物车信息表用来存储用户购物车内商品的信息。Cart表的结构如表3-2所示:

  表3-2 购物车信息表

  字段名数据类型(精度范围)长度约束条件说 明idverchar11主键购物车iduser_idverchar111非空用户idproduct_idverchar11非空商品idquantityverchar11数量checkedverchar11是否选择,1=已勾选,0=未勾选create_timedatetime创建时间update_time datetime更新时间

  3.5.3 Category表(种类信息表)

  种类信息表用存储商品所属类别的信息(包括父品类,子品类等)。Category表的结构如表3-3所示:

  表3-3 种类信息表

  字段名数据类型(精度范围)长度约束条件说 明idverchar11主键类别Idparent_idverchar11非空父类别id当id=0时说明是根节点,一级类别nameverchar50非空类别名称statustinyint1非空类别状态1-正常,2-已废弃sort_orderverchar4排序编号,同类展示顺序,数值相等则自然排序create_timedatetime创建时间update_time datetime更新时间

  3.5.4 Order表(订单信息表)

  订单信息表用来存储用户所产生的订单的信息。Order表的结构如表3-4所示:

  表3-4 订单信息表

  字段名数据类型(精度范围)长度约束条件说 明idverchar11主键订单idorder_noverchar20非空订单号user_idverchar11非空用户idshipping_idverchar11paymentverchar20实际付款金额,单位是元,保留两位小数payment_typeverchar4支付类型,1-在线支付postage verchar10运费,单位是元statusverchar10订单状态:0-已取消-10-未付款,20-已付款,40-已发货,50-交易成功,60-交易关闭payment_timedatetime支付时间send_timedatetime发货时间end_timedatetime交易完成时间close_timedatetime交易关闭时间create_timedatetime数据创建时间update_timedatetime数据更新时间

  3.5.5 Order_item表(订单项目信息表)

  订单项目信息表用来存储更为详细的商品内容信息。Order_item表的结构如表3-5所示:

  表3-5 订单信息表

  字段名数据类型(精度范围)长度约束条件说 明idint11主键订单子表iduser_idint11非空order_nobigint20非空product_idint11非空商品idproduct_nameverchar100商品名称product_imageverchar500商品图片地址current_unit_price decimal20生成订单时的商品单价,单位是元,保留两位小数quantityint10商品数量total_pricedecimal20商品总价,单位是元,保留两位小数create_timedatetime数据创建时间update_timedatetime数据更新时间

  3.5.6 Pay_info表(支付信息表)

  支付信息表用来存储用户购买商品后的支付状态信息。Pay_info表的结构如表3-6所示:

  表3-6 订单支付信息表

  字段名数据类型(精度范围)长度约束条件说 明idint11主键订单IDuser_idint11非空用户idorder_noBigint20非空订单号pay_platformint10非空支付平台:1-支付宝,2-微信platform_numbervarchar200非空支付宝支付流水号platform_statusvarchar20非空支付宝支付状态create_time datetime创建时间update_timedatetime更新时间

  3.5.7 Product表(商品信息表)

  商品信息表用来存储系统内的商品的详细信息。Product表的结构如表3-7所示:

  表3-7 商品信息表

  字段名数据类型(精度范围)长度约束条件说 明idverchar11主键商品idcategory_idverchar11非空分类id,对应mmall_category表的主键nameverchar100商品名称subtitletinyint200商品副标题main_imageverchar500产品主图,url相对地址sub_imagestext图片地址,json格式,扩展用detail text商品详情pricedecimal20价格,单位-元保留两位小数stockint11库存数量statusint6商品状态.1-在售 2-下架 3-删除create_time创建时间update_time更新时间

  3.5.8 Shipping表(物流信息表)

  物流信息表用来存储用户购买商品时所填写的详细信息。Shipping表的结构如表3-8所示:

  表3-8 物流信息表

  字段名数据类型(精度范围)长度约束条件说 明idint11主键订单IDuser_idint11非空用户idreceiver_namevarchar20收货姓名receiver_phonevarchar20收货固定电话receiver_mobilevarchar20收货移动电话号receiver_provincevarchar20省份receiver_cityvarchar20城市receiver_districtvarchar20区/县receiver_addressvarchar200详细地址receiver_zipvarchar6邮编create_timedatetime创建时间update_timedatetime更新时间

  3.6 数据库E-R图

  图 3-9 系统数据库E-R图

  4 详细设计

  4.1 系统环境配置

  在本项目开发过程中,除了程序本身的开发,我们还需要进行各种环境的配置。程序是运行在服务器上面的,但是用户的数据不全是存储在程序内部,有些数据要存在数据库中,有些数据则要直接存放在服务器中。这些下面简单列举一些环境的配置

  4.1.1 项目前的准备代码

  本项目在开发之前需要做一些准备工作。商城系统是一个复杂的系统,用户在使用过程中可能遇到的问题会很多,因为我们先预定义各种异常处理逻辑。预定义异常处理逻辑如图4-1所示。

  图 4-1 预定义异常处理逻辑

  本项目中的做法是将通用的异常码封装在common包下。Const文件首先定义常量,用于获得当前用户,邮箱以及用户名。紧接着定义购物车接口与角色接口。购物车接口主要用以区分购物车的选中状态。通常情况下,用户只会购买购物车内的一部分商品,因此我们需要对选中状态进行区分。现实生活中,用户在购物车结算时不仅会更改选中状态,很多时候还会更改物品的购买数量。因此还有两个字段进行标志选中数量的更改是否成功。现在本项目中的判断依据就是商品上架时填写的库存数量减去已购买的商品数量,剩余商品数量不能小于用户购物车内的商品数量。另一个接口是登陆用户权限接口,用以区分普通用户与管理员。最后是商品展示信息的枚举与接口。枚举内部提供了商品状态码与对应的说明文字。在应用场景中,商品属性分为:上架、下架、已删除三种。上下架之间可以相互转换状态,删除状态不可逆。

  ResponseCode、TokenCache、ServerResponse是三个常量类。ResponseCode定义的是简单请求返回码,本身只有四种最常见的状态:成功、失败、用户必须登陆、用户操作违法。其本身是个枚举,提供了状态码和对应中文说明的字段。TokenCache是用以记录用户登陆状态的缓存数据。它用设置键值对的方式记录用户,使得用户在项目的不同页面跳转过程中不会丢失登陆状态。ServerResponse是服务端返回信息的核心类,服务端返回的几乎所有数据都与这个类有关。首先我们需要使用JsonSerialize注解保证序列化json的时候,如果是null的对象,key也会消失。然后是具体返回内容的设置。这个类实现了Serializable序列化接口,并且本身提供了泛型接口。本项目服务端返回的均为json格式的是数据,格式大概分为三个部分:状态码,状态码中文信息,jsonObject内容主体,泛型即是返回的数据内容主体。在使用时,当用于操作出现异常时,我们只需要返回状态码以及异常原因即可,不需要传入泛型。当用户操作正常时,我们需要返回相应的数据,将vo作为泛型传递进去。比如说我们更新购物车内的某件商品时(修改数量),我们需要传入用户ID与商品ID,同时返回json格式的数据,数据内容就是状态码、操作回馈、以及商品对象。返回的商品对象包含单价、数量、总价以及商品模型内的其他各种详细信息。

  4.1.2 关于文件服务器的配置

  用户的个人信息可以存放在数据库,但是对于一个商城系统而言,商品的详情介绍是必不可少的。数据库中只能存放字段,不能存放富文本数据。因此我们需要一个文件服务器存放各种富文本信息(比如图片、视频、音频)。本项目中使用的文件服务器是ftpserver。在Windows系统下使用ftpserver程序,可以临时将一个本地目录创建为服务器文件存储地址。Windows下的ftpservr配置相当简单,本地的域名配合自己设置的端口号、用户名、密码就可以搭建成功了。

  为了便于项目维护,在设计之初就将各种需要用到的属性放置于同一个properties下。项目维护具体代码如图4-2所示。

  图 4-2 项目维护具体代码

  包括后期扩展所需要用到的支付宝支付回调接口也是定义在这个文件内。项目中用专用的util进行数据的读取,读取方式重载为两种:第一种是根据关键字提取值,第二种是根据关键字提取值并且设置默认值。

  4.1.3 nginx反向代理的设置

  Nginx是轻量级web服务器,也是一款反向代理服务器。Nginx可以支持rails和PHP程序,可以作为http反向代理服务器,可以作为负载均衡服务器等等[[] 胡二彪.基于SEO的教学资源网站设计与开发[D].河南:河南师范大学,2012.

  ]。在Windows下使用nginx需要更改本地host文件与nginx配置文件即可。本项目中nginx的主要作用是搭配ftpserver文件服务器搭建一个可以用于测试环境调试的网站结构。

  在本项目中使用nginx时,我们先在nginx安装目录下新建vhost文件夹。在文件夹内创建conf文件定义代理规则。我们需要定义监听端口(本项目设为80端口),日至输出路径(access_log)。值得注意的有两点。第一:在Windows下搭配ftpserver使用时,我们需要注意表示目录时应该使用”\”而不是“/”。第二点是关于audoindex的设置。自动索引打开时暴露出nginx目标路径下的所有文件,关闭时可以保证安全但是在Windows下会因为权限问题产生403错误。之后我们在程序根目录下的conf文件内添加include vhost/*.conf;此时可以引用刚才的配置文件。配置文件的生效方式可以采用命令行手动重启nginx或者直接重新启动计算机。最后我们需要在这个路径下C:\Windows\System32\drivers\etc修改本地计算机的host文件让刚才定义的转发规则在本机上生效。写下localhost(127.0.0.1)与目标url即可。具体实现代码如图4-3所示。

  图 4-3 创建conf文件定义代理规则

  4.2主要模块的功能与界面展示

  4.2.1 前台功能的功能实现与界面展示

  网上商城的首页面如图4-1所示。

  图 4-1 网上商城的首页

  前台的主要功能

  用户登录:点击“登录”按钮,根据用户输入的信息对比数据库查询,判断用户是否存在。若存在,再对比输入的密码,判断能否成功登录并给予网页提示。具体如图4-2所示。

  图 4-2 用户登录界面

  用户注册:点击“注册”按钮,进入用户注册页面,根据网页信息提示填写完相关信息,符合要求后,点击“立即注册”,信息录入数据库,即可成功。具体如图4-3所示。

  图 4-3 用户注册界面

  用户找回密码:若用户忘记登录密码,点击“找回密码”,进入找回密码网页,正确回答注册时设置的问题即可找回密码。具体如图4-4所示。

  图 4-4 用户找回密码界面

  用户个人信息(包括信息的编辑与密码的修改等):登录成功后,可以在“个人信息”中查看信息,点击“编辑”可修改个人信息,填写完修改密码信息并提交后可修改密码。具体如图4-5和图4-6所示。

  图 4-5 用户个人信息中心界面

  图 4-6 用户修改密码界面

  商品的查询与浏览:在搜索框中填入关键字搜索,即可得到符合条件的商品。点击商品图片即可跳转到商品的详情界面进行浏览,购买等操作。具体如图4-7和图4-8所示。

  图 4-7 商品搜索结果界面

  图 4-8 商品详情界面

  添加购物车:用户将选好的商品加入购物车,跳转页面提示是否成功。用户还可进入自己的购物车查看所选择的商品详情。具体如图4-9和图4-10所示。

  图 4-9 商品加入购物车界面

  图 4-10 购物车查看所选商品界面

  4.2.2 后台功能的功能实现与界面展示

  后台的主要功能

  管理员的登录:与用户登录相类似。具体如图4-11所示。

  图 4-11 管理员登录界面

  商品管理功能:可以进行现有查询,查看、编辑商品相关信息的操作以及重点的商品添加功能。具体如图4-12和图4-13所示。

  图4-12 商品管理功能界面

  图 4-13 商品添加页面

  商品品类管理:主要对现有商品的类别进行操作,包括添加商品类别,查看、修改商品类别及其子类别。具体如图4-14至图4-17所示。

  图 4-14 品类管理界面

  图 4-15 查看品类管理子类页面

  图 4-16 商品品类添加页面

  图 4-17 商品品类修改页面

  结论

  本次毕业设计比较成功地实现了一个网上商城系统的基本功能。从最初的分析设计到最后的编码实现,所运用的知识与方法是多方面的。其中有前端的的node.js与npm组合,后台的Spring,SpringMVC,Mybatis技术组合等,还有MySQL数据库,以及数据交互方面的json格式、Java中的jsonObject数据解析、用来提升开发效率的第三方插件。此次毕业设计使得我对专业知识的理解更透彻,对专业技术的运用更熟练。

  当然,由于时间的紧迫与个人技术的限制,我所实际的网上商城系统也存在着不少的问题,它只是在理论上实现了一个网上商城的基本功能,离实际的网上商城来说还有很大一段距离。这对我的现有技术提出了更高的要求。在出错-找错-改错的过程当中,我的专业实力得到了极大的提升。

栏目分类