APP下载

基于Java技术的校园二手商城网站开发

2022-07-05谷光明龙安全

安顺学院学报 2022年3期
关键词:页面服务器数据库

谷光明 龙安全

(1.贵州财经大学商务学院,贵州 惠水 550600;2.安顺学院,贵州 安顺 561000)

目前,随着网络不断的快速发展,当前世界对商品行业的交易方式已经从根本上实现了转变。自20世纪90年代开始,中国的电商行业开始产生萌芽,很多企业都在想方设法地期望可以通过当前发达的互联网络来实现商品的交易。不过由于那个时候存在着很多的无法预计的因素,有的是因为企业的声誉等非常不好进行认证、有的是因为互联网对商品交易相关法律法规还不是特别完善、有的是因为当时的物流相对落后等,这些因素都阻碍了我国在互联网上销售商品的发展速度。当时间进入到21世纪以后,我们国家的经济也有了很大的变化,得到快速的发展,之前许多限制商品网上交易的难题都逐一得到了解决,这样一来国内的各大企业都慢慢地加入到了电子商务模式的浪潮中[1]。

根据艾媒咨询数据可以看出,在2019年的上半年中,中国的网络零售总额达到195,209.07亿元。网络零售总额已经占社会零售总额的24.7%。随着电商行业的持续发展和火热,很多电商平台都在不遗余力地开拓新的营销模式来刺激消费者的消费欲望。网络交易的优点就是这一购物方式能给人们的日常生活当中带来了很多想象不到的方便,除了交易地点变得更加便捷,商品种类变得更加丰富,更为关键的就是改变了人们原有的购物习惯,使得人们已经能够习惯在网上查看自己需要商品的相关信息,然后再决定是否购买,使得其成为目前购物决策环节的非常重要的一个环节[2]。

线上交易比传统的销售模式的优势在于:

查询便捷:在电商平台中交易可以很清楚很有目的性地找到某件商品。比如,可以通过品种、价钱等途径进行筛选,快速又准确。

信息量大:与过去的交易方式比较,网络交易能够提供大量商品信息。

成本低,不受地点的限制:网络交易最突出的优势是,消费者可以在任何的空闲时间去进行消费,也可以在不同的地区进行购物。这样的模式使客户群得到增加,也可以使商品的流通更加广泛。

我国的高校群体极其庞大,生活需求持续增长,加之学生群体在网络交易过程中出现闲置物品需要置换或者交易,一方面节约学生群体的生活成本,另一方面让物品尽可能发挥其所具备的价值,吻合节约型社会发展需要。

本文使用Spring Tool Suite4作为开发工具,使用Maven工具进行项目的管理,使用Mysql数据库来进行数据的存储,使用Redis服务器实现数据的缓存,使用Nginx服务器实现反向代理。使用mybatisplus以及spring boot作为开发框架。设计系统时采用了JSP技术完成了前台页面设计过程。使用JavaScript以及Ajax技术来进行页面的交互功能[3]。

Spring Tool Suite4是一个基于Eclipse开发工具基础之上对于spring boot进行了一系列整合的一个开发工具,包括最为关键的服务器和云计算Git,Maven和最新的eclipse版本提供整合支持[4]。Spring Boot是一个整合了SSM三大框架的新的框架。之所以使用Spring Boot框架的目的是用来简化项目的开发过程,而且解决了传统框架之间jar包冲突的问题[5]。Nginx是由俄罗斯软件工程师Igor Sysoey开发的一个高性能的HTTP和反向代理服务器,是Apache服务器不错的替代品[6]。JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是一种动态网页技术标准[7]。JavaScript是一种用户页面交互的脚本语言。还可以大范围的用于用户端Web设计的脚本语言,一般可以用作增加HTML网页动态功能[8]。

1 系统分析

完成所有系统的设计中,它可能受到的时间和空间的限制。因此,在每个项目的设计开始,就必须进行系统的可行性,从而可以降低项目的危害,减少人力,物力和财力的损失。下面就从技术,经济,操作和法律四个方面进行简要的说明。

技术可行性:本设计主要用Spring Tool Suite4和MYSQL数据库作为设计工具,使用Java作为开发语言,采用J2EE技术,例如Spring Boot,MybatisPlus,Spring MVC等框架,这些框架都是开源的,利于学习。Java是一种面向对象的编程语言,难度等级为中等。因此,整个系统在技术上是可行的。

经济可行性:设计使用到的技术基本都是开源的,所以在设计成本方面完全可以得到实现,本设计对硬件的需求不高,正常的笔记本电脑就可以满足其需要,所以经济是完全可行的。

操作可行性:本设计与用户的交互方面完全实现图像页面化,不需要用户过多的掌握计算机能力即可实现操作。

法律可行性:本设计使用到的技术为完全开源技术,所以不存在任何侵权的风险,所以在法律可行性方面完全可行的。

根据目前所掌握的技术以及对用户需求方面的综合考虑,本设计主要分为以下几个模块:

后台商品信息管理模块、用户注册及登录模块、购物车模块、订单管理模块。

网上购物商城最重要的就是安全,尤其是用户在登录时的信息安全,一旦用户信息被盗用将会造成很严重的后果,所以在本设计中将使用单点登录的设计思想,第一,采用单点登录能很好地提高用户的体验,通过一次登录就可以无限的访问系统中其他的业务,而不需要每次进行敏感操作时需要再次登录、第二,通过对用户第一次登录所使用的IP地址对用户进行绑定,这样在下次登录时,通过程序对IP地址进行验证,能有效地防止因为用户cookie被盗用而带来的安全问题。进行敏感操作时,例如对购物车的操作,对订单的操作时,必须强制用户先进行登录才能进行操作[9]。

2 系统设计

2.1 系统架构设计

传统的系统架构中,通常将一个系统所有的业务都写在一个项目中,这样做会有很大的风险,当一个网站的访问量在某一时间内急剧增加时,可能会造成服务器的宕机,那么当服务器宕机以后这个系统的所有业务都将无法访问。

本系统为了解决这一问题,将采用分布式的架构进行系统设计,在分布式中实现对系统内部的分散,而对于外部则采用统一的原则,即用户只需要访问一个网址就能实现访问系统的所有功能。

当将一个系统分为多个子系统后,每个系统的开发环境大致相同,通过采用一个父级项目,多个子级项目的方式进行构建,每个子级项目通过继承来得到父级项目中的开发环境。同样,每个子级项目中可能会用到相同的API,所以创建一个公共的API项目,子级项目通过对公共项目的依赖,就可以使用项目中的全部API。

2.2 数据库设计

数据库是一个软件的核心内容,在软件开发过程中设计出的数据库的结构是否良好直接决定了软件的效率和性能。在设计数据库时主要要根据软件的功能和所需要的统计的数据的类型去设计数据库中的每个表,更要通过每个数据之间的关系去建立数据表的关联关系[10]。

在设计完数据表之后,就要为每个数据表中的字段创建属性,这些属性也是有各自的要求例如,每个数据表中的主键属性不能为null,而且一般设计为自动增长,另外在相关联的表中还要设计外键关联,以此来达到增强系统效率的目的。下面主要用表的形式来描述创建数据表中字段属性的过程。

用户表主要是记录了用户基本信息。表结构如表1所示。

表1 用户表(tb_user)

商品表主要是记录了商品基本信息。表结构如表2所示。

表2 商品表(tb_item)

商品分类表主要是记录了商品所属的分类信息。表结构如表3所示

表3 商品分类表(tb_item_cat)

本文按照类似方法创建了商品描述表(tb_item_desc);订单表(tb_order);订单物流表(tb_order_shipping);订单物流表(tb_order_item)。

3 系统功能实现

Maven是一个jar包管理的工具,通过maven能够很简单的下载jar包并管理jar包。

配置Maven本地仓库代码如下:

${user.home}/.m2.repository

Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。他能在程序运行时自动的为代码添加一些东西,比如构造方法、getset方法等。这样就不需要在程序中自己添加这些占用面板又没有什么实际作用的重复代码,运行lombok插件:

3.1 编写工具类

本文为了解决不同项目之间需要同样的API时不用重复创建的问题,创建此接口项目,用来为所有项目提供公共的API。项目的打包方式为jar包,同时项目继承父级项目。

在项目中使用到了mybatisplus框架,mybatisplus是一个半自动的对象关系映射框架,所谓的对象关系映射就是一个数据表对应一个java对象,也就是pojo对象,由于在所有的java对象中有相同的属性,所以为简化开发在此创建一个公共的pojo对象,用于其他对象继承其属性。

3.2 编写全局异常处理类

在软件设计中,通常会出现一些异常,这些异常有些是由于用户的输入有错误,有些是因为程序的严谨性不够,当出现这些异常时通常业务员不能执行成功。但是还要将异常的信息返回给用户。这样全局的异常处理类作用就很重要,在业务执行时如果执行正确就会走正常的调用流程,如果执行错误就会走异常处理的类。

3.3 后台商品管理模块

3.3.1 商品模块项目创建

创建商品管理项目,此模块要进行web页面的显示,所以打包方式为war包。添加启动插件,由于此模块要实现单独运行,所以需要加入Tomcat运行插件

3.3.2 编写application.yml配置文件

在spring boot项目中简化了很多的配置,例如传统的项目中需要编写spring的核心配置文件,mybatis的核心配置文件,spring mvc的核心配置文件等。这些配置文件写起来非常的麻烦而且容易出错。在使用了spring boot之后这些配置文件都得到了简化。

在application.yml配置文件中主要配置几项内容,主要有程序访问的端口号和访问路径,连接数据库的数据源,MVC的视图解析器,mybatisplus的整合,以及为了测试方便的日志输出配置。

3.3.3 编写通用页面跳转

在软件设计中会有很多个功能,这些功能都对应着一个页面请求路径,这样就需要在controller层编写多个类用来接收请求路径,这样重复的代码是毫无意义的。为了解决这一问题,本设计中采用restFul风格。festFul风格就是:用户请求的地址尽可能不变,只改变请求的类型,从而实现请求的操作,Spring MVC动态获取参数的方法,即用一个controller接收多个请求路径。

3.3.4 商品查询

商品查询就是将数据库中的商品信息展现到页面中,本设计中采用的前端框架为easyui。利用此框架能简化前端的开发,只需要少量的配置并按照一定的规则使用就能实现业务的效果。在使用easyUI时,要求后端返回的数据是有一定的规则的,也就是在得到数据库中的信息之后,要对数据进行一定的封装之后才能传到前端。

Mapper层在软件开发中是直接与数据库交互的一层,在商品查询业务中需要的业务层方法只有分页查询商品的具体信息返回商品集合。

3.3.5 商品新增、删除和上下架

正常网站的商品分类一般为三级分类,这样的分类能将大部分商品包括进去,同时页面的效果也比较合适,本设计商品新增中的商品类目采用easyUI的树型结构。使用easyUI的树型结构需要满足easyUI的要求,对数据进行封装。

为了客户的操作方便,本设计的商品类目使用的是树型结构,用户只需要点击就可以选择商品属于哪些分类,所以在新增商品之前要先获取商品的分类信息,通过parentId获取所有的商品分类。

在查询商品分类信息的业务中,首先从数据层获取的是ItemCat对象的集合,而easyUI需要的是EasyUITree对象的集合,所以在获取到ItemCat的集合之后要通过循环遍历的方式进行赋值,而在为EasyUI赋值时,其中有一个属性无法确定,树型结构的节点是开还是关闭需要进行条件的验证。

商品删除和上下架的业务基本相同,主要是前端通过数组的形式传输商品ID的数组,后端接收数组后根据主键ID进行删除和上下架。上下架主要是对商品的一个属性进行修改,属性为1时表示上架,属性为2时表示下架。

3.4 校验注册信息

用户在注册时,需要填写用户名、密码、手机号等个人信息,这些信息在数据库中都是独一无二的。所以在注册时必须对这些信息进行校验。校验的方式是当用户输入信息之后页面中会发起异步请求校验数据。

由于用户在进行操作时之间访问的都是前端服务器,前端服务器又要通过跨域的方式去请求后端服务器,在解决跨域时用到的方法是jsonp,jsonp要求返回前端的对象是特殊格式,所以将返回的对象用Jsonp Object对象封装。

在注册时用户需要提交注册信息,这时就需要页面通过post提交传输数据,这样jsonp就不能实现。只能通过httpclient完成。Httpclient在使用时代码非常复杂。本设计中通过一个更加简单的方式解决。在本设计中使用dubbo来实现远程的调用。用户发起请求后直接访问前台的controller,前台controller通过调用前台和后台之间的接口来实现直接调用后台的service。

在分布式的项目中,当用户访问某一模块时需要进行登录验证,如果每次访问不同模块都要进行登录,这就导致了用户体验不良好。所以本设计中采用单点登录的方式进行设计。单点登录就是用户在一台服务器上登录过之后会将登录信息单独保存在一台服务器上,这台服务器和其他服务器之间都会建立关联,共享登录信息,这样在其他服务器上访问时就不用了重复登录。本设计的实现思路是当用户登录时现在数据库中校验数据是否存在,如果存在返回一个唯一的标识并将标识存入cookie中,同时将标识作为key,用户信息作为value存入Redis中,这样用户下次登录时首先访问Redis查看数据,如果存在则不用登录,如果不存在则返回登录页面。

结 语

本设计使用JAVA作为开发语言,页面的呈现通过JSP技术实现,设计中更用到了Redis作为缓存服务器来增加系统的效率,实现校园二手商城开发,实现技术有一定的实用性,限于篇幅,不便展现代码。

猜你喜欢

页面服务器数据库
刷新生活的页面
答案
让Word同时拥有横向页和纵向页
2018年全球服务器市场将保持温和增长
数据库
数据库
数据库
数据库
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵