文章首发地址
1绪论
-
- 研究背景及意义
当今电子商务的发展十分迅猛,更新迭代的节奏也非常的快。当代人的生活方式现在正在一点一点的被潜移默化的改变着,当今社会的这种生活方式也是一种更人性化的模式,比如饿了的时候不想做饭,就可以随时通过手机进行点餐,想买一些特色产品但又懒得去农贸市场就可以进行网购。这种模式对人们的生活质量有巨大的提升,人们通过电商平台,节省时间成本,大大提高了办事效率。
在今天这个世界上,信息化时代基本上每天都在大力的发展。在很多发达的地区甚至是一些发展不够发达的地区人们的生活中早就已经使用智能化管理。在本电商平台上,无论消费者在中国的哪个角落都可以自己先进行商品的浏览,无论消费者是什么身份什么职业,只要会使用网络,都可以查询商品的信息,从而大大提高购物效率和购物质量,使消费者交易的过程更加灵活、自动、舒适和快捷。
随着当前计算机信息技术应用及移动信息时代的到来,人们的生活被各种各样的PC端软件或移动APP充斥着,使用各大应用的人群基数也逐步增加,人们对系统的需求也自然而然的增强了,早已不是满足使用基本功能的时代。人们除了在意产品的基本功能之外还会关注系统的安全性、隐私性等等。
各种购物网站现在已经成了生活中不可缺少的调味品,比如比较全面的淘宝网,还有可以进行交流问答的小红书APP,还有电脑爱好者者们的天堂京东商城等等。拥有一个功能丰富、操作方便的电子商务销售网站,可以汇聚广大网民,吸引流量。电子商务销售网站的建立,从广大消费者的角度来说,给他们创建了一个一起交流和讨论的平台,而且可以购买最新的电子商务产品。从商业盈利的角度上来讲讲,不仅可以达到精准销售的目的,还可以更直接地不通过代理进行销售,省去了许多中间商的差价。拥有一个如此专业的电子商务销售网站,轻松的使厂家对产品有了一个很好的销售渠道。
-
- 国内外研究现状
当今社会发展趋势越来越迅猛,传统销售方式的没落,我认为这并不是不能避免的,很多都在改变,人们的娱乐方式不仅仅再是读书看报。电子产品的普及,使大家的生活都充满了新的活力,不管是什么职业、什么身份的人都越来越依靠我们的互联网,所以互联网时代也就迅速发展了起来。因此,国家大力推动,推动其向全国推广,但是由于越来越多得人选择上网购物而不是去实体店,使得实体店越来越无人问津。事实上很多人也不想让传统实体店没落,但是仅依靠少数人的努力是无法改变现状实体经济逐渐没落的趋势的,将来实体经济的发展情况是难以预测的,但是实体店或者说实体经济是不能缺少的。所以,本文借助实现电子商务销售网站的这个契机,把我们所学到的只是结合起来,让实体店和网店有所联系,这可以帮助消费者和商家更好的进行买卖。
-
- 本文研究内容
本文会按照在大学里学习的专业的软件工程学对于一个系统产生的所有流程去介绍整个基于JSP的计算机网络学习网站的实现方式。
当然,本文将着力介绍基于JSP的计算机网络学习网站的基本组成与结构,并详细说明该网站的设计方案、实现的方法、开发工具及其他相关的技术。另外,重点介绍了软件开发中的一些细节。系统在一定条件下对系统中的重要模块进行严格测试,验证了该系统的可用性与可靠度。接下来介绍我实现系统的过程与本文的结构:
首先在开发这个系统之前需要对整个项目进行立项及可行性分析,画出本系统的原型图及编写出可行性研究报告,通过这一系列分析才决定这个项目到底可不可行,能否进行开发。
第二步是进行项目计划的制定,比如在某个时间区间内要完成哪一个模块的功能,完成的时间如果提前或者滞后该怎样解决等。
第三步是进行需求分析,需求分析可以说是在项目进行编码之前最重要的一步,需求分析主要是对系统的功能模块做一个详细的设计,模块与模块之间的联系,功能与功能之间的优先级、难易度都是需要在这个阶段进行分析的
第四步是进行系统设计,系统设计主要包含数据库的详细设计、系统中页面的规划与区分、系统中的文件命名等内容,做好这一步在编码部分会更加得心应手,编码变的更有效率。
第五步是代码编写阶段,按照严格的命名规范和编程习惯进行功能的实现。
第六步是对已经编码完成的系统模块进行测试,这个地方要注意的是不能等所有的功能都完成之后再去测试,而应该编码与测试同步进行,这样可以缩短整个的项目周期。
2所用技术分析
2.1 程序框架
本程序使用B/S机构开发,B/S结构的程序运行于浏览器,现在移动设备很发达,所以我们使用B/S结构编程,可以让PC用户和移动端的用户都能正常访问我们的网站。
2.2 JSP技术介绍
JSP是一种动态网页技术,是一种面向对象编程的开发语言。经过十几年的发展,JSP的优点越来越显著,首先就是开源免费,一个语言如果是开源免费的就会更方便人们学习交流,让越来越多的程序员进入到JSP编程的领域。除此之外,JSP相比其他语言更快捷高效,性能也比较好,还是可以跨平台的语言。最最重要的就是它是面向对象的编程思想,可以以类和对象为核心解决各种问题。
2.3 HTML5技术介绍
HTML的全称是超文本标记语言,是通过各式各样的标签进行网页设计的一种语言。本网站的前台使用的是Div+Css布局,通过此布局方式可以更灵活的进行网页设计。如何理解这种布局方式,可以将网页的body部分看做是人的躯体,将Css部分看做人穿的衣服,衣服可以重复的穿,既可以自己穿也可以别人穿。在网页中即表现为当前网页可以被一个Css进行修饰,其他的网页也可以被它修饰。通过HTML作为前台语言再根据CSS结合做出来。当前使用的比较新的技术是HTML5相应式网页设计,使用响应式的设计方法可以使用一个网页在不同的设备上都可以完美的显示。这种方法的优点是面对分辨率不同的各种设备,均可以灵活的进行展示。缺点则是代码量多,消耗的时间就会很多。实现HTML5响应式网页设计最核心的方法就是媒体查询,媒体查询就是根据打开网页的设备的屏幕大小来使用不同的样式进行展示。在写某个样式的时候会线添加我们所需要的条件,比如正常的电脑显示就把最大的宽度设置为1024PX,Ipad设置为768PX,手机设置为320PX-480PX。
本系统的布局方式有多种,比如最常见的DIV+CSS样式布局,还有在登录注册页面上使用的Table布局,以及进行图文信息显示的DL-DT-DD布局等。本系统的前台页面有很多的层叠样式表文件(也就是CSS文件),首先有个整体的样式文件,所有的页面的基础样式都引用该文件,再就是其他的页面都有一个属于自己的CSS文件,通过这些样式使所有页面都能很好的进行显示。
2.4 JavaScript及Vue技术介绍
JavaScript技术简称JS,JS出现于1995年,在JS出现之前,表单验证的工作由服务器端进行,非常占用网络资源,所以效率很低。JS出现之后,表单验证由客户端的浏览器完成。当然目前JS的使用不仅仅是表单验证,而是服务于HTML网页,对网页进行一些动态的美化,比如网页的菜单折叠功能、网页图片的轮播功能等等。下面简单介绍一下JS的使用方法:可以写在<script></script>标签之中,可以在网页的任意一部分去写。也可以在外部新建XXX.JS 文件,然后通过script Src 去进行引用。JS是一种轻型的解释性脚本语言,必须以HTML为基础去实现。JS常用的结构为顺序结构、选择结构和循环结构,顺序结构就像其他代码一样从上而下的执行,选择结构又分为IF语句和Switch语句,IF语句分为单分支、双分支及多分支,具体用法与C#、JAVA等编程语言完全一致。Switch语句括号中放一个变量或表达式,后面的Case语句是不同的分支,每一个分支执行完成之后需要加break语句。不过需要注意的是所有case均不满足时,走default分支。循环中的难点就是跳转语句,Continue语句:结束本次循环,且剩余的语句不会执行,开始下一次循环。Break语句:结束整个循环。
VUE技术是一种JavaScript框架,近几年编程行业发展十分迅猛,众所周知编程分为前端和后端,VUE就是一种前端框架,目前出现了很多前端的JS框架,这些框架也极大程度的改变了前端的开发方式,在这些框架中应用最为广泛的就是VUE技术。VUE的核心设计方法就是MVVM,与传统的MVC类似,MVVM指的是Model(模型)-View(视图)-ViewModel(视图模型)。这种设计模式的特点就是可以将视图中的数据自动更新到视图模型中,而视图模型中的数据变化也会更新到模型中,实现数据的双向绑定。VUE的全称写作VUE.JS,可以极大程度上提高数据绑定的效率,还有灵活的组件系统,让网页元素可以进行复用。
2.5 MYSQL数据库的介绍
MySql是开发Java、JSP项目最常用的关系型数据库,对于学生来说如果使用Oracle等大型数据库完全没有必要,因为大型数据库软件的价格非常昂贵,做此类小型项目还是比较适合用MySql这种可以免费使用的小型数据库,查询效率高,易于维护等特点都是选择使用此数据库的原因。
3 需求分析
电商平台的发展可以追溯到1995年,亚马逊和易贝,它们两家公司的出现无疑是新一轮科技工业革命的开端,打破了人们的一种思维定式,也极大地提高了经济的发展和运行效率及质量。国内的电商平台出现的较晚于国外,在1998年阿里巴巴成立后,国内的电商正式开始起航[8]。
在刚刚过去的2020年,因为疫情造成的多种不变,电商这个行业快速发展起来将网购成为生活的一部分,我国大多数群众在一大段时间里无法自由出入小区和村庄。在这个时候很多人都会选择网购,外面很多实体店慢慢倒闭了,但是网店却一个一个的开始爆单。电子商务已经成为我国的一大经济主体,并有可能逐步取代实体经济。
网站前台:
- 用户可以在不登录的情况下访问本系统,但是不能进行商品的购买或收藏,也不能对自己的个人信息进行修改。
- 用户的注册与登录:游客想要在一个网站对自己的信息进行修改的话,需要经过一系列的有验证信息的注册,成为网站的正式用户后,可以编辑或修改自己的个人信息。
- 站内新闻:用户可以在网站内进行站内新闻的查看。
- 商品列表:通过商品列表功能可以浏览网站内的所有商品,当你有看到喜欢的商品但是又不急于去购买的话,可以先看看对于这个商品的介绍再去决定。
- 系统简介:用户可以在网站上查看本系统的简介。
网站后台:
- 用户信息管理:管理员可以查看和维护网站内所有的用户信息,可以通过用户的编号或者用户名进行查找,查找到具体的用户后可以对用户的信息进行修改,也可以直接删除用户的信息。
- 留言管理模块:后台管理员可以对网站内的留言信息进行管理,比如可以查看当前系统内的所有留言信息,还可以对其进行维护和删除。
- 商品信息管理模块:管理员可以查看已有的所有商品并对其进行维护或删除,还可以在网站内新增新的商品信息。
- 类别管理模块:管理员可以添加和管理商品的类别信息,如添加手机、笔记本电脑等分类。
- 订单管理模块:管理员可以随时查看当前任意订单的详情和状态,并对其进行维护和管理。
- 站内新闻管理模块:为了让广大用户更了解本网站,网站管理员会定期对站内新闻进行管理。
- 结账管理模块:管理员通过账号可以实时管理网站中的结账信息。
一个系统的性能是非常重要的,比如一个电子商务销售网站同时有200人访问和购买,网站是否能承载,再比如有大量数据进行刷新和新增时数据库能否正常的进行数据操作。本网站虽然是个小型的管理系统,但是通过性能优化,完全可以做到承载500人以上的同时访问,通过对数据库中的一些常用对象的设计可以最大化的将查询效率提高。
一个系统的可扩展性主要是看能否在当前版本的基础上添加新的功能进行升级,本会员管理系统提供了很多接口可以进行版本的迭代。
大家以往的认知里,就算别人得到了自己的个人信息也不会对自己有任何的影响,但事实并非如此。有一些居心叵测的人会通过你遗漏在别处的个人信息得到你的姓名、电话甚至住址和工作单位,并以此进行电信诈骗。所以本系统的系统安全是非常重要的,本系统做了很多安全方面的设计,比如防SQL注入的设计,这使得我们更安心使用[10]。
一个网站的经济可行性是指除去开发这个网站的成本后,还能否获得利润。除此之外还要看本网站是否有市场发展潜力和市场价值,本人开发这个系统一方面是因为要证明自己在学校四年的学习后可以制作出一个专业的网站,还有一个原因就是希望增强用户的体验度。对于本系统来说,开发的成本几乎为零,因为这是个人开发的项目,用到的也都是基础的编程方面的知识,所以从经济可行性方面来考虑,本系统是可行的。
本系统的开发使用的是个人电脑,不需要使用阿里云或百度云主机,个人电脑的硬件足够支撑本系统的运行,所以硬件方面是没有问题的。
软件方面来考虑的话,本系统与其他的JSP项目一样,开发工具都是使用的MyEclipse编程软件和MySQL数据库,因此在技术上是可行的[11]。
在当今这个计算机技术高度发达的时代,不管是大人亦或是小朋友都会使用电脑或者手机上网,不管是用自己家里的个人电脑还是用公司的公用电脑。大家现在都已经很习惯在网上进行购物,所以基于JSP的电子商务销售网站的操作对所有用户来说都是不成问题的,而且经过对界面的设计之后,本系统对使用者来说非常友好。此网站管理员是开发项目的开发者,所以管理起来也更不在话下。经过上述分析,操作方面是可行的。
4 总体设计
经过对各大电子商务网站(如淘宝、京东)及生活中对数码店的研究,我认为基于的电子商务销售网站应具有以下几个功能:
- 网站的页面美观清晰系统的操作流畅便捷。
- 买家具有在网站内的商品详情信息下发表评价、卖家回复评价等功能。
- 具有商品对应视频与图片观看、视频与图片下载的功能。
- 具有可以展示各种商品以及最新活动及商品热卖榜等信息的功能。
- 具有购物车功能和购买功能。
- 具有查询自己订单最新动态的功能。
- 具有后台管理功能,方便管理员对网站中的评价和商品进行管理。
为了能够更好地对整个系统的运行原理进行阐述,本文中制作了数据逻辑结构图。如下图所示,用户在前台的页面上进行了相关操作后会产生数据的增删改查,比如用户在注册页面下进行账户注册后会产生一条新增数据的SQL请求,这个请求会通过后台代码由WEB服务器执行,WEB端会将数据请求通过DBHelper中的数据处理类进行SQL语句的执行,最终新注册的用户的个人信息会通过Insert语句插入到相关的用户表中。
4.2 实体图
在创建数据库之前,我们必须进行一系列详细的设计,以满足数据库的所有方面。在数据库设计中,我们通常应该遵循其自身的范式要求。一般数据库表应满足第二种范式,特殊表可能达到第三种范式。此外,在设计数据库范例的过程中,首先要做的是总结实体图。为了更好地强调其实现和属性之间的关系,如下所示。
管理员信息属性有:管理员的账户名、密码以及编号。如下图所示。
用户实体的属性包括:用户ID,用户真实姓名,用户性别,用户年龄,用户手机号码,用户邮箱,用户家庭地址,用户真实的身份证号等。具体如下图所示。
图4.3用户实体图
商品实体在这里有两大类,分别是商品信息和商品类别,商品类别的属性包括:分类编号,类别大类,类别小类。商品信息的属性包括:ID号,编号,名称,类别大类,类别小类,原价格,现价格,图片,数量等。具体如下图所示。
图4.4商品类别实体图
图4.5商品信息实体图
4.2.4 新闻实体
新闻实体的属性包括:ID号,标题,类别,内容,添加人,首页图片,点击率等。具体如下图所示。
图4.6新闻通知实体图
4.3 数据库设计
本系统所有的数据操作,数据查询及数据的提交都需要用到数据库,所以拥有一个稳定的数据库对本次毕业设计的完成是非常重要的。
(1) 在设计数据库时我首先想到的就是注册和登录功能需要使用到用户表,用户表的主键应该为用户的编号,用户名应该设为唯一,除此之外还应该有联系方式、邮箱等列。
(2)对于商品或者订单表来说,如果使用一个表进行信息的管理会用到很多的列,这会导致查询的效率变慢,所以我选择设计两个表存储他们的信息,一个是商品表,一个是商品明细表。
(3)用户在网站中修改了自己的个人资料后,数据库中的用户表要及时的进行数据更新。
(4)商品购买、或者订单的流程完成后,通过一个字段(Status)来反应当前订单的状态,如未支付、已发货、已完成等。
(5)因为本系统存在管理员的角色,所以需要一张表来存储所有管理员的信息。这样,至少要创建如下的数据表和数据列:
① 用户表,存储用户ID(可设置为自增长)、用户名和密码等。
② 管理员表,存储管理员ID(可设置为自增长)、管理员信息等。
③ 类别表,类别ID(可设置为自增长)、类别信息等。
④ 员工信息表,员工ID(可设置为自增长)、员工信息等。
⑤ 折扣信息表,包括折扣ID、折扣信息等。表结构如下:
表4-1类别表(leibie2)
字段名 | 描述 | 类型 | 长度 | 是否空 | 是否主键 |
id | 分类编号 | int | 11 | 否 | 是 |
lbda | 类别大类 | varchar | 50 | 是 | 否 |
lbxiao | 类别小类 | varchar | 50 | 是 | 否 |
addtime | 添加时间 | timestamp | 0 | 否 | 否 |
表4-2管理员表(allusers)
字段名 | 描述 | 类型 | 长度 | 是否空 | 是否主键 |
ID | 序号 | int | 11 | 否 | 是 |
username | 用户名 | Varchar | 50 | 是 | 否 |
pwd | 密码 | Varchar | 50 | 是 | 否 |
cx | 权限 | Varchar | 50 | 是 | 否 |
addtime | 添加时间 | Varchar | 0 | 否 | 否 |
表4-3商品信息表(shangpinxinxi)
字段名 | 描述 | 类型 | 长度 | 是否空 | 是否主键 |
id | id号 | int | 11 | 否 | 是 |
bianhao | 编号 | Varchar | 50 | 是 | 否 |
mingcheng | 名称 | Varchar | 200 | 是 | 否 |
leibie1 | 类别大类 | Varchar | 50 | 是 | 否 |
leibie2 | 类别小类 | Varchar | 50 | 是 | 否 |
jiage1 | 原价格 | decimal | 10 | 是 | 否 |
jiage2 | 现价格 | decimal | 10 | 是 | 否 |
tupian | 图片 | Varchar | 50 | 是 | 否 |
shuliang | 数量 | int | 11 | 是 | 否 |
istop | 是否置顶 | Varchar | 2 | 是 | 否 |
addtime | 添加时间 | timestamp | 0 | 否 | 否 |
表4-4新闻通知表(xinwentongzhi)
字段名 | 描述 | 类型 | 长度 | 是否空 | 是否主键 |
ID | id号 | int | 11 | 否 | 是 |
biaoti | 标题 | Varchar | 200 | 是 | 否 |
leibie | 类别 | Varchar | 50 | 是 | 否 |
neirong | 内容 | Varchar | 800 | 是 | 否 |
tianjiaren | 添加人 | Varchar | 50 | 是 | 否 |
shouyetupian | 首页图片 | Varchar | 50 | 是 | 否 |
dianjilv | 点击率 | Varchar | 10 | 是 | 否 |
addtime | 添加时间 | timestamp | 0 | 否 | 否 |
表4-5用户注册表(yonghuzhuce)
4.4 系统功能设计
- 电子商务系统:本系统是可以允许匿名浏览的,但是在拥有自己的账户之前是不能解锁所有功能的。不管是网站的用户们还是管理员们都要先进行注册,只有注册完成之后才能进行登录。首界面如图所示。
- 站内新闻浏览:普通用户登录进系统之后可以进行站内新闻浏览功能,这个功能的展现更加方便让用户了解近期该网站哪个让人们更加想要了解。界面如图所示。
- 商品列表及商品详情:可以在网站上查看所有的商品信息,点击某一个商品可以查看详情及进行购买。
- 购物车浏览:用户可以选购喜欢的商品放入自己的购物车。界面如图所示。
- 后台首页:后台首页面采用上中下结构,上部分是基本信息展示,能够让我们一眼就可以看见,中间部分的左侧为菜单栏,右部分为具体的操作界面,具体的效果如下图所示:
(6)各管理功能:通过用户管理为例介绍一下本系统的总体后台管理,通过用户信息管理模块可以按照不同的条件进行员工信息的查询,在列表内的最后一栏还可以对用户信息进行修改、删除和查看详情。界面如图所示。
5 系统测试
软件测试在大家的理解里也许只是单纯的找到Bug,但其实如果Bug很明显的话开发者在开发期间就可以找到,不明显的Bug一定是存在于代码不容易走到的分支,除此之外软件测试不仅仅是对系统本身做的测试,测试的内容还应该包括开发过程中的所有文档。软件测试的目的主要是:
第一、根据自己前期所制作的需求说明及系统设计说明,查看自己的系统能否满足当初所有的预期。
第二、在投入市场之前,尽可能多的找到软件中存在的问题。
从软件使用者的角度来分析,软件测试可以帮助用户找出潜在的问题,不影响用户的正常使用,从而提升用户的满意度。从开发者的角度来看,软件测试可以提升自己代码的质量,让自己更有开发的自信心。
在网站内的信息管理功能中,选择不同的的条件进行搜索,在搜索之前先查看数据库中的所有的数据信息,首先查询数据库中已经有的信息,看能否成功显示数据。再随便查找一个不存在的信息,看结果是否为空,如果两种情况的查询都按照预期的结果进行则说明本模块没有问题。
在商品的详情页面上点击购买按钮进行购买,购买后需要登录管理员的账户查看是否后台数据库中新增了用户的购买记录,如果数据库中的订单表新增了用户的订单信息,则说明商品购买模块没有缺陷。
用户注册的功能测试主要是测试表单验证的准确性(在这里主要以用户名密码和确认密码举例子)已经注册过的用户是可以直接登陆的。测试用例及测试结果如下所示:
测试用例 | 用户名 | 密码 | 权限 | 测试结果 |
1 | admin | admin | 超级管理员 | 进入管理员界面 |
2 | 11 | 11 | 超级管理员 | 进入管理员界面 |
3 | 33 | 33 | 超级管理员 | 进入管理员界面 |
4 | admin | 1 | 超级管理员 | 用户名或密码错误 |
测试用例 | 用户名 | 密码 | 权限 | 测试结果 |
1 | yh001 | yh001 | 用户 | 进入用户界面 |
2 | yh002 | 用户 | 请输入密码 | |
3 | yh002 | 用户 | 请输入用户名 | |
4 | yh003 | yh003 | 用户 | 进入用户界面 |
在数据库中的站内新闻表中多造一些测试数据,然后进入前台的站内新闻模块查看所有的站内新闻信息,如果页面上的数据与数据库中的数据是相对应的则说明本模块没有问题。
软件测试是整个开发流程中非常重要的一部分,现实中各个软件公司都会有软件测试部门。在做项目时不能只顾着完成自己的代码而不进行测试,应该每完成一个功能就对其进行详细的测试。这样可以最大程度上降低本模块的错误影响其他模块的可能性,所有我觉得整个测试过程中最重要的就是细心和耐心。在整个测试过程中,测试者需要多方面考虑我觉得最主要的是会为客户的需求角度考虑,在这次测试过程中总是会出现很多问题,但是在查阅多方面的资料下一一解决,也让我对软件测试更加的了解。