摘 要
如今随着互联网的快速发展,在互联网的大趋势下,各种行业都开始开拓互联网这条大渠道。当代人的生活习惯和工作方式都发生了巨大的变化,就拿网上订餐来说,现在的网上订餐系统各式各样,很多都千篇一律,人们越来越觉得无趣。这时候设计出一款好用的订餐系统,就能给很多人带来良好的体验感。在此设计了一款基于java spring框架,springmvc框架和mybatis框架整合开发的网上订餐系统,它在对象上设计详细以及记录研究。此系统采用java语言eclipse进行编程,数据库存储信息采用的是MySQL数据库,用jsp页面作为系统的表示层,运用css样式提高了整个系统页面的美观性且进行了排版优化,采用jQuery框架处理逻辑以及数据显示。根据以下设计可以完成一个有效、受大众喜爱的网上订餐系统,提高操作过程效率,降低运营成本。
关键词: Spring框架;SpringMVC框架;Mybatis框架;MySQL数据库
第一章绪论
1.1选题的背景和意义
近些年来,互联网技术在社会中不断发展,人们的生活、工作与互联网技术越来越不可分开。它为人们带来了方便和快捷的生活方式,比如网上订餐、外卖等。近几年来,市面上不断地推出一些优质的线上订餐软件,例如饿了么,美团外卖等,人们可以使用软件进行订餐,商家也通过了这些软件来推广、销售自己的商品。本课题也是网上订餐系统,主要分析和讨论了网上订餐系统的设计和开发,该系统以快速、稳定、简便为追求,让用户和商家有更多的平台可以进行选择。
本系统是一个B/S架构的订餐系统,比较早之前想要订餐只能通过电话跟商家进行下单,商家如果有新品推出用户也无法及时知晓,而对用户而言也没有更多的商家可以进行选择,网上订餐会展示出图片以及一些商品的信息,当人们想要点食物,这时候网上订餐就可以让人们一目了然地知道某种事物大概是什么样子的,在每种商品下,他还会提供月销量等,他可以作为人们选择食物的一种参考,月销量大的一般来说是比较受大家欢迎的。在商家这边,商家端可以以人们选择食物的销量作为一种参考意见,对于受欢迎的食物,商家可以多购买食材,对于比较冷门的菜品,商家则可以减少购买食材。作为系统的后端服务基础,以jsp页面来展示系统,以jquery来实现页面与后台的交互,以css来美化页面,以MySQL作为数据库来存储数据。希望能够让用户和商家有更多的平台可以进行选择。
1.2国内外研究现状
在《外卖O2O平台发展现状与对策研究》[1]中可以看到网上订餐经过几个阶段的发展,越来越壮大。近些年来随着互联网技术在社会中不断发展,人们的生活、工作与互联网技术越来越不可分开、网上订餐越来越成为人们喜欢的一种生活方式。不管是小餐馆还是名牌的连锁大餐饮,都加入到了线上销售模式,这也催生了外卖行业,越来越多的人投入到外卖配送,层出不穷的网上订餐软件被推上市面,从另一个角度来看,网上订餐也是促进电子商务应用发展的一种方式,网上订餐已经成为了用户的主流选择。
国外,例如X、英国等打发国家的信息化较早,各行各业都比较早进行信息技术的发展。
在餐饮行业中,较早之前的传统人工餐厅内有线点餐系统进行点餐,从90年代开始,随着互联网和智能手机的普及,逐步实现了互联网的无线点餐系统,但是高昂的人工成本,让国外的网上订餐服务停滞不前[2]。
网上订餐更加方便快捷,支付方式也多种多样,还有各种系统的数据分析,能快速分析商家每天的营业额,通过各种数据进行分析,商家可以根据这些数据对自身的营销方案做出相应的调整,不管国内还是国外,伴随着技术的飞速进步,现在的网上订餐系统发展前途一片光明,如果是想要创业的人,这无疑是一个很好的选择方向。
1.3课题主要内容和结构
课题主要从软件开发的角度分析和讨论了基于SSM框架的网上订餐系统的设计和开发。
课题包括摘要、绪论、实现技术的相关理论、可行性分析与需求分析、系统的设计与实现、结论等几个大版块。其中又对几个版块进行了详细的划分,从几个方面介绍了基于SSM框架的网上订餐系统的设计和开发的过程。
第一章主要阐述了网上订餐系统的研究背景和意义,以及网上订餐系统在国内外的研究现状,并大概的介绍了本课题的主要内容和结构。
第二章主要是详细介绍了实现该系统需要具备的相关的知以及需要掌握的技术和一些开发工具的使用。
第三章主要是对要实现的网上订餐系统进行可行性分析和系统的需求分析进行了详细的介绍。
第四章主要是概述了该网上订餐系统各个模块、功能点的系统设计,以及建立该系统的数据库。
第五章主要说明网上订餐系统的详细开发过程,并展示了部分核心的功能和对实现的功能模块进行详细的介绍,展示了各个功能的界面、主要实现的代码等。
第六章主要是介绍如何对实现的网上订餐系统进行详细的系统测试。
第七章主要是对这个系统的进行相应的总结和对未来的工作做出进一步的规划。
第二章相关理论基础
2.1mvc设计模式
mvc是一种软件开发的设计模式,这种模式是将业务逻辑层、数据访问层、表示层分别区分开,使它们专注负责自身的作用[3]。
2.2SSM框架
2.2.1spring框架
Spring是一个优秀的轻量级java开源框架,是一种以非入侵式的方法来管理应用程序的代码,它使用面向切面和依赖注入的方式来搭建java应用系统的框架,可以有效的简化程序开发,有效的降低程序之间的耦合度,打到软件模块之间解耦的目的[4]。
2.2.2Springmvc框架
它的角色具有很明确的划分,他的设计模式和mvc一样,实际中他处理起来比mvc不简单。它利用控制器拦截用户的请求,不同的对象完成不同的不同的功能,它通过调度其他的对象,让不同的对象进行协调处理,以响应用户的请求,把业务对象和控制逻辑清晰地隔离,spring mvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合[5]。
2.2.3Mybatis框架
支持动态的SQL,sql写在xml中,降低了SQL和java代码的耦合性,让程序的设计更简明,维护起来更简单;它也支持java对象和数据库字段的映射[6]。Mybatis是一个基于java的持久层框架。对于研发人员来说,主要关注点在使用SQL语言。
2.3jQuery
jQuery是用JavaScript语言封装的代码库,在使用jQuery类库后,JavaScript的代码将变得更简洁,使Web开发变得更加的简单[7]。
2.4MySQL数据库
MySQL数据库是一个小型的、免费的、开源的关系型数据库,在当前的互联网上很多中小企业的网站都因为它低成本、性能良好等特点而选择使用MySQL数据库[8]。
第三章可行性分析与需求分析
3.1可行性分析
3.1.1技术可行性分析
在企业级应用开发过程中,业务逻辑的处理往往是比较复杂的,使用spring直接来管理java对象的生命周期,可以让开发人员更加专注与具体的业务逻辑实现,而把对象交给spring管理,不仅可以达到各模块解耦的目的,还能提高编程效率。springmvc是spring框架的Web组件,用来支持软件开发过程中的表示层,处理用户发送的请求。Mybatis作为开源的持久层框架,对jdbc进行了简单的封装。对于系统页面的展示与交互,使用jQuery已经足够完成前端的处理任务。
3.1.2操作可行性分析
本系界面简洁,操作简单方便,系统中的页面都具有引导作用,能引导用户进行操作,用户所做的操作也都有相应的提示。用户能够较快熟悉本系统。
3.1.3法律可行性分析
对于法律层面来说,他不是违法的。因为上面所有的开发工具和框架都是不收取费用的,在官网上都能直接搜得到并对此进行下载以及安装。
3.1.4风险分析
可能由于开发者的技术水平不足或者用户需求的变更导致部分功能未能及时完成,或者由于测试不到为,系统中可能有隐藏的漏洞。或者是系统界面不够美观,不能被大多数用户认可,但是这些都在可接受的范围内,只要系统的核心功能能够实现即可。
3.2需求分析
本系界面简洁,操作简单方便,系统中的页面都具有引导作用,能引导用户进行操作,用户所做的操作也都有相应的提示。用户能够较快熟悉本系统。
3.2.1功能需求分析
首先是基本的用户、商品的添加和删除功能,确认订单的配送状态。点击商品可以查看商品的信息,还能通过选择商品的分类,来筛选不同的商品,当用户点击购物车时,系统就会自动跳转到购物车,并展示购物车中的商品以及相关信息。用户下单时会判断用户是否已经注册,只有登录的用户才能下单,未注册的用户下单时会跳转到登录页进行登陆后方可进行下单,下单后,用户可以查看订单的详细信息。在系统的后台,系统管理员可以管理系统的模块,修改个人信息,管理系统日志,管理系统中的菜品和系统中的订单,还可以管理普通用户的账号等。
3.2.2性能需求分析
在数据处理能力上,可以同时支持100人同时订餐,处理文件可以达到100个。系统的性能是影响用户体验感、系统稳定性的直接因素,在系统的最初架构设计时,应该考虑到各种技术整合时的兼容性和成熟性等因素。还要考虑到系统服务、数据库所能承载的并发数等。在目前系统用户基数不大、数据量不多的情况下,只要尽可能的优化业务逻辑的代码,其他因素暂时可以不用考虑,系统的性能是足够满足目前的业务需求的。
3.2.3数据库需求
本系统需要先在MySQL数据库中建立一个属于系统的数据库,然后创建系统中每个模块功能所需要的数据表,主要有:菜品分类表、用户表、日志表、菜品表、订单表以及权限表[9]。具体的表结构尽量满足标准的数据库三范式要求即可。
第四章网上订餐系统设计
4.1系统的总体功能设计
本网上订餐系统有前后台两部分。
系统实现部分是设计的实际化,产品化阶段。该系统的开发过程是:先进行前端页面设计,再进行后台编码,实现具体的功能模块,最后实现整个系统的功能。前台供普通用户使用,可以进行选择菜品,下单,如果用户没有登录,需登录,如果没有账户,用户可以先为自己注册账号,然后再进行登陆,系统的总体功能流程如图4-1所示,系统的前台用户的用例图如图4-2所示。
图4-1功能流程图
图4-2 普通用户用例图
系统的管理后台只有系统管理员才能登陆和使用,系统管理员在系统管理后台能够维护系统的用户、订单、日志、商品等信息。系统中的管理员的用例图如图4-3所示。
图4-3 超级管理员用例图
按照系统的功能把本系统分为登录注册模块,智能点餐模块,后台管理模块,购物车模块以及个人信息模块[10]。具体的实现方式是利用Mybatis框架让java的实体类映射到数据库的对应表。从而实现对数据库表的基本操作。
4.2登录注册模块的设计
用户登陆时,在输入的账号密码、验证码,都正确的情况下,就会成功的登陆到系统的后台。如果输入的任何一项有误的情况下会进行相应的错误提示。用户的登陆流程图如图4-4所示。
图4-4用户登录流程图
当用户在注册时,填写完相关的信息之后,点击注册,成功注册之后,系统会用户的信息存入数据库中的user表中,并且系统会自动的切换到登陆页面,假如用户注册失败,那么系统就会提示用户注册失败。系统的用户注册流程图如图4-5所示。
图4-5 注册流程图
4.3智能点餐模块的设计
智能点餐模块主要的功能有:商品及其详细的信息展示,还有对商品进行下单操作等。还可以选择不同的商品类别来锁定自己需呀的商品。也可以添加商品到购物车,对购物车商品中的数量进行控制等。只有在登陆的情况下用户才能将选择的商品进行下订单操作。
4.4后台管理模块的设计
系统的后台管理模块只有系统管理员才能登陆和使用,系统管理后台的主要功能模块包括:订单管理、商品管理、系统日志、客户管理、导航菜单、系统设置、用户管理等。其总体功能如图4-6所示。
图4-6 后台管理模块图
在后台的系统设置模块中,系统管理员可以对系统中的菜单和角色维护管理,密码同样也能修改。管理后台的图标和名称,用户权限在角色管理中进行管理,其中使用者的密码同样也能在密码修改中进行修改。
对系统管理员角色进行账号管理可以在系统中的用户管理中找到。
4.5 个人信息模块的设计
在个人信息模块中,系统的用户可以对用户自身的账号信息进行编辑,该模块中主要存储展示的是使用者的基本信息。使用者也能对原有信息进行修改或者添加。
4.6 购物车模块的设计
购物车是用来存放用户添加的商品。并且用户可以对已经加入购物车的商品进行数量上的修改。购物车上也会统计商品的总价格。此外,购物车中还可有清空购物车的按钮、下单的按钮、以及选中和未选中商品的选择框。
点用户能够在返回菜单中的页面显示中查看选择的商品价格,在已经选择的菜篮里能够通过选择清空来去除已经选择好的商品。使用者在进行系统登陆后,当对商品进行选择后进行下单的操作,就会跳转到配送的流程上。
4.7数据库的建立
在MySQL数据库,先创建db_book_dinner数据库,在里面创建表account,authority,food,food_category,log,menu,order_item,orders,role,user。数据库的普通用户er图如图4-7所示
图4-7数据库er图
如表4-1所示的account表,该表是用来存放系统中的用户信息。
表4-1account表
字段名称 | 数据类型 | 注解 | 能否为空 |
id | Int(11) | 用户id,主键 | 否 |
name | varchar(50) | 用户名 | 否 |
password | varchar(50) | 密码 | 否 |
realName | varchar(50) | 用户真实姓名 | 能 |
phone | varchar(15) | 电话 | 能 |
address | varchar(100) | 地址 | 能 |
表4-2所示的authorit表主要用于存储超级管理员权限。
表4-2authority表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 用户id,主键 | 否 |
roleId | varchar(11) | 外键,role表的id | 否 |
menuId | varchar(11) | 外键,menu表的id | 否 |
表4-3所示的food表用于存储菜品的基本信息以及图片。
表4-3food表
字段名称 | 数据类型 | 注解 | 能否为空 |
id | Int(11) | 自增索引,主键 | 否 |
categoryId | int(11) | 外键,food_category中的id | 否 |
name | varchar(50) | 菜品名称 | 否 |
price | Float(5,2) | 菜品价格 | 否 |
sels | Int(5) | 菜品销量 | 能 |
imageUrl | Varcher(200) | 图片地址 | 能 |
des | varchar(200) | 菜品的描述 | 能 |
表4-4所示的food_category表用于存储菜品的类别的名称。
表4-4food_category表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增id,主键 | 否 |
name | varchar(50) | 菜品的类别名称 | 否 |
表4-5所示的log表是用来存储日志的,如用户或者管理员在操作本系统时的事间和具体操作。
表4-5log表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增id,主键 | 否 |
content | varchar(200) | 记录系统的使用日志 | 否 |
createTime | varchar(50) | 使用的日期时间 | 能 |
表4-6所示的menu是用于存储权限的基础信息。
表4-6menu表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增id,主键 | 否 |
name | varchar(100) | 密码 | 否 |
url | varchar(200) | 记录图标地址 | 能 |
icon | varchar(50) | 权限的名 | 否 |
表4-7所示的 order_item是用于存储订单信息。
表4-7order_item表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 用户id,主键 | 否 |
orderId | varchar(11) | 外键,order表的id | 否 |
foodId | varchar(11) | 外键,food表的id | 否 |
foodName | varchar(50) | 菜品名称 | 否 |
foodImage | varchar(20) | 菜品图片的url地址 | 否 |
price | varchar(100) | 菜品的价格 | 否 |
foodNum | Int(50) | 菜品的数量 | 否 |
money | Float(5,2) | 总计消费金额 | 否 |
表4-8所示的orders表是存储订餐用户信息。
表4-8orders表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增id,主键 | 否 |
accountId | varchar(11) | 外键,account表的id | 否 |
money | Float(5,2) | 消费金额 | 否 |
productNum | varchar(50) | 订单菜品 | 否 |
status | varchar(2) | 订单状态 | 否 |
recieveName | varchar(100) | 用户名 | 否 |
phone | varchar(20) | 用户的电话 | 否 |
address | varchar(200) | 收货的地址 | 否 |
createTime | varchar(200) | 消费的时间 | 否 |
表4-9所示的role表是用于存储用户分类。
表4-9role表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增ID,主键 | 否 |
name | varchar(50) | 用户分的类的名 | 否 |
remark | varchar(200) | 解释name的含义 | 能 |
表4-10所示的user表是用于存储超级管理员的基本信息。
表4-10user表
字段名称 | 数据类型 | 注解 | 能否为空 |
Id | Int(11) | 自增ID,主键 | 否 |
username | varchar(50) | 用户名 | 否 |
password | varchar(20) | 密码 | 否 |
roleId | varchar(11) | 外键,role的id | 否 |
Photo | varchar(200) | 超级管理员头像路径 | 能 |
sex | varchar(1) | 超级管理员的性别 | 能 |
age | varchar(3) | 年龄 | 能 |
address | varchar(200) | 地址 | 能 |
第五章网上订餐系统实现
5.1 前端的开发
前端开发的jsp页面,放在WEB-INF文件夹下的views文件夹中,前端开发需要用到的相应脚本代码包、样式文件等需要放在开发项目结构的resources文件夹中。
前端的页面基本上可以分为以下几种页面:
(1)错误页面
错误页面是用来对系统错误或者用错操作不当导致的错误进行提示。主要有两种错误页面:当用户访问的地址不存在时会提示“404”界面,如图5-1所示。当系统的后台报错无法相应用户的请求时,系统就会返回“505”界面来提示用户,如图5-2所示。
图5-1404错误页面(a) 图5-2500错误页面(b)
(2)登录注册页面
管理员的登录页面登陆管理员角色时,需要将账号、密码、验证码正确的输入并进行登录操作,如图5-3所示,如果在登录时,输入的账号、密码或者是验证码,有一项输入不正确的话,系统就会进行相应的提示,让用户去重新修改并再次尝试登录操作。
图5-3超级用户登录页面
用户登录页面
用户登录的页面。如果用户在系统中选择好商品后,要进行下单时,此系统会自动去判定此时登陆的用户是不是登陆上系统了,假如用户还没有进行系统登陆,系统就会给用户进行提醒。
图5-4普通用户登录页面
用户注册页面完成用户注册功能的页面,如图5-5所示。
图5-5用户注册页面
(5)后台管理页面
在系统的管理后台中。系统管理员所拥有的功能有:首页跳转、退出登录、用户管理、系统设置、系统日志、菜品管理、客户管理、订单管理等,当管理员点击这些模块菜单时,系统会打开当前菜单下的子菜单,这种实现方式是通过前端的异步交互效果,可以在页面不刷新的情况下,去后台服务器加载数据。如图5-6所示。
图5-6后台管理页面
(6)菜品展示页面
该页面是展示菜品的,不同的菜品分类,可以展示不同的菜品,即菜品会随着菜品分类的变化而变化。右下角还有“菜篮子”,点击会跳转到订单页面,如图5-7所示。
图5-7菜品展示页面
(7)菜篮子页面
在菜篮子中展示了用户选择的菜品以及菜品的数量、单价、总价等信息。此外,用户还可以进行下单和修改商品的数量或者去订单中心查看历史订单的功能,如图5-8所示。
图5-8菜篮子页面
(8)订单中心页面
显示用户以前的订单记录的页面。如图5-9所示。
图5-9订单中心页面
(8)加载等待页面
页面或数据加载时所显示的页面。
(9)用户信息页面
用户的基本信息的页面。用户可以填写配送信息。如图5-10所示。
图5-10用户信息页面
5.2后端的开发
5.2.1整合框架
在整合SSM框架时,首先需要导入三个框架各自开发时需要用到的开发jar包,然后在各自的配置文件中去设置框架的信息[11]。主要的配置有:spring对开发项目扫描包的路径以及数据库连接池的信息、spring对事务的管理、系统日志信息配置、拦截器设置、springmvc解析器的配置、前段控制器的配置信息等。具体的项目配置文件如图5-11所示。
图5-11配置文件结构图
5.2.2Javabean的编写
Javabean其实是Java的普通实体类,它在对应的表中映射在数据库里面。主要的实体类有:用户信息类、用户类、菜品类、菜品分类信息类、订单类、订单明细类、权限类、系统日志类、系统菜单类、角色类。系统项目中存在的实体类文件主要结构如图5-12所示。
图5-12Javabean代码结构图
5.2.3控制层的编写
在控制层中,有各种各样的控制器。控制器的作用是拦截用户的每一个请求,不同的控制器拦截用户不同的请求,这是系统中业务逻辑处理的关键。在springmvc中只需要使用注解,就可以将当前类交给spring去管理,当有需要时,spring会讲其自动注入。常见的控制器注解有: @requestmapping注解、@controller注解。其中@controller注解是作用在一个java类上面,它表明了这个类是一个控制器类,会将该类注入到spring容器中去。@requestmapping注解是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。系统中的主要控制器类文件结构如图5-13所示。
图5-13控制器代码结构图
5.2.4业务层的编写
业务层,又称为业务逻辑层,顾名思义,就是主要用来处理系统中的业务逻辑的地方。业务逻辑层是系统的运行的关键。跟控制器一样,在spring中提供了@service注解把业务逻辑层的类放到spring的控制反转容器中,只需要将注解加在类上即可。如果在其他类中需要调用某个业务逻辑层的实例对象,只需要使用@autowire注解即可,它就会自动注入到当前类中。系统中的业务层的类文件结构如图5-14所示。
图5-14业务层代码结构图
5.2.5 数据持久层的编写
数据持久层主要是与数据库进行交互。在数据持久层中编写的java类一般都需要有对应的增删改查的方法,用来执行和调用mybatis的映射文件中的对应的SQL语句[12]。可以通过@Repository注解把数据持久层的java类注册到spring容器中。系统中的数据持久层的类文件结构如图5-15所示。
图5-15数据持久层代码结构图
5.2.6拦截器的编写
拦截器是用来拦截用户发送的请求,并对拦截的请求进行处理,可以根据处理的结构判断是否放行请求,主要作用是看用户是不是有相对于的权限[13]。使用者在登录系统时,拦截器会对此工作进行拦截且会判断此时的用户登录是不是已经无效了,如果失效会重定向到系统的登录页面,让用户重新登录。另外,拦截器的类需要继承HandlerInterceptor类,并在springmvc配置文件中进行配置[14]。系统的拦截器的主要代码如下所示。
public boolean plenanaic(httpServiceRequest request, httpServiceResponse response, Object arg2) throws Exception{ String requestURI=request.getRequestURI(); Object admin = request.getSession().getAttribute(“admin”); if(admin==null){ //表示未登录或登录失效 System.out.println(“链接”+requestURI+”进入拦截器!”); String header =request.getHeader(“X-Requested-With”); //判断是否是ajax请求 if(“XMLHttpRequest”.equals(header)){ //表示是ajax请求 Map<String,String> ret =new HashMap<>(); ret.put(“type”,”error”); ret.put(“msg”,”登录会话超时或还未登陆,请重新登录!”); response.getWriter().write(JsonObject.fromObject(ret),toString()); return false; } //获取菜单id String mid = request.getParameter(“_mid”); if(!StringUtils.isEmpty(mid)){ List<Menu> allThirdMenu =MenuUtil.getAllThirdMenu((List<Menu>request.getSession()); request.setAttribute(“thirdMenuList”,allThirdMenu); } return true; } } |
5.2.7分页功能
分页功能类定义的方法可以让主页在展示从数据库获查询到的数据进行处理并进行分页,还支持设置每一页的数据需要展示的条数,系统中分页的主要代码如下所示。
private int page=1;//当前页码 private int rows;//每页显示数量 private int offset;//对应数据库中的偏移量public int getPage() { return page; } public void setPage(int page) { public int getRows() { public void setRows(int rows) { public int getOffset() { public void setOffset(int offset) { |
5.2.8验证码生成器的编写
验证码生成器是用来产生验证码,校验管理员的登录。验证码的作用主要是防止有人恶意攻击网站,企图用恶意链接或者是请求进行强制登录系统[15]。这样可以提高系统的安全性。系统中验证码生成器的java类只需要进行简单的配置即可,比如数据源、生成的验证码长度、图片、样式等。系统中的验证码效果如图5-18所示。
图5-18验证码效果图
第6章 网上订餐系统的测试
6.1 对各个模块的测试
6.1.1测试的标准
分别利用普通用户管理员账号,登录系统对系统中的每个功能进行操作,评估系统实现的功能是否符合需求说明,在系统操作的过程中系统的前台、后台是否有报错,系统中每个功能、按钮是否存在bug等。
6.1.2测试的流程
(1)登录注册模块的测试:
用户的登录注册测试:当登录状态下输入账号以及密码或者输入的账号及密码是不正确的时候,此时系统是不是会有关联的提示可以进行系统的登录,最后输入正确的账号和密码后点击登录,又是否能够顺利登录系统。
用户进行注册的测试:在系统中点击注册,系统是否能够跳转到注册页面;在注册页面用户输入信息后,点击注册,是否能够注册成功。注册成功后,用户再去系统登录页面进行登录,是否可以成功登录系统。
(2)后台管理模块的测试:
在系统后台的功能模块中,点击对于的功能以后,功能的列表展示页面是否会进行刷新展示、展示的数据是否正确。列表展示页面刷新后,操作相应的功能按钮,系统是否有响应。
(3)智能点餐模块的测试:
通过系统首页,使用系统的用户登录到系统中,他能够选择各种品种分类,对于系统中已经存在的商品展示中的,那些菜品是不是会自动刷新,去显示一些具有关联性的商品。对于相关商品的选择后,可以试着把商品放到购物车里面去,此时系统中的购物车是不是会有提示选择后的商品的数量提示,是不是要选择商品的添加,在购物车中是不是会增加刚刚添加后的商品的数量。相反的,加入商品量减少了,系统中的购物车中的那些数据是不是也会相应地减少。最后,如果点击购物车,系统是否会自动跳转到购物车页面,并展示用户已经添加的菜品。
(4)购物车模块的测试:
在购物车中,首先查看购物车能的菜品总计金额是否正确,添加的菜品数量、菜品名称是否正确,如果点击选菜,系统是否能够跳转到首页继续选择菜品。在相应的菜品中去修改菜品的数量,数量是否会修改,菜品的总计金额是否会相应的修改。如果点击清空购物车按钮,购物车内的菜品是否会被全部清空。点击下单按钮,是否能够正常下单,并跳转到配送信息的页面,如果用户还未登录系统,进行下单时,系统是否会提示用户还未登录。点击订单中心按钮,系统是否会跳转到订单中心页面。
(5)个人信息模块的测试
在订单中心页面中,查看订单展示的基本信息是否正确。如果对信息进行修改并保存,信息是否会被正常保存并刷新展示。在系统管理后台的用户列表中,修改用户信息,能否正常修改。
6.1.3测试的结果
通过以上的测试标准和测试流程对系统进行严格的测试之后,系统中的各个功能都能正常运行,功能的实现能够达到预期的需求,在操作过程中没有发现系统有任何报错信息,而影响测试的进行。系统中的页面排版、样式也都正常。系统后台服务未发现有任何报错日志。
6.2兼容性测试
6.2.1对于客户端的测试
操作:通过使用不同的浏览器去操作系统,主要使用了以下几种浏览器:360浏览器,谷歌浏览器和IE浏览器。
结果:在各个浏览器中,系统都等正产运行,没有发现用各个浏览器操作系统时有什么区别,也没有发现哪个浏览器有什么异常出现,而且页面的效果都是达到预期的。
6.2.2对于系统开发环境的检查测试
操作:查看系统后端的代码和系统启动、运行时输出日志是否有存在错误。
结果:未发现系统后台代码和日志有任何报错信息。
第7章 总结与展望
7.1 总结
本课题基于Java的SSM框架设计并实现了网上订餐系统。实现了用户网上选餐、下单的功能,为用户订餐时提供了便利。通过国内外网上订餐系统的现状分析,以及对当前用户对网上订餐系统的基本需求进行分析,还分析了系统开发时可能遇到的风险点,以及分析系统的实现可行性。然后通过技术选型,最终选择用Java程序设计语言来作为系统的开发语言,本系统为B/S架构,采用了Java的三大框架spring,springmvc,mybatis,来作为系统的后台框架,使用了小巧、高效、经济的MySQL数据库作为系统的数据库,以JSP作为系统的前端展示页面,使用了JavaScript的封装工具jQuery来实现系统的前端与后端的交互。最后通过一轮又一轮的测试与修改,最终排查并解决了系统中存在的问题,确保系统是安全、稳定的。虽然当前的系统只是满足基本的网上订餐系统的基本功能要求,但是当前的系统可扩展性较强,后续如果有新的需求增加,可以方便、快速的进行功能的扩展与创新,以满足用户的需求。
7.2展望
基于JAVA的网上订餐系统的设计与开发在多方面的理论、方法和技术,目前该平台基本的功能已经实现,但是还可以继续完善系统中的一些问题。
1)本文只实现了简单的功能,后续可以继续开发、完善,如优化系统的运行速度,增加新的功能,完善现有的功能,使现有的功能更加人性化。
2)可以对接一些第三方的接口,来完善现有的店铺信息,保障信息的准确性和可靠性,期待后期进行更为深入的优化。
3)多彩优选移动平台在数据的测试上还存在一些问题,但是这些都应该会在预期的计划中进行解决。
4)JAVA等相关网站技术在该商城平台的开发过程中应用范围还可以进一步提高。
最后,在整个毕业设计和论文撰写中,对于一个完整的项目从摄像到实现所经历的挫折和所遇到的问题让自己有了一定的成长,在这过程中包括了对数据库的设计不合理,整体界面的设计与优化不到位,后台进行数据交互缓慢等问题。但是在处理这些问题时,随着一步一步的深入了解不断提升了自己对项目实现的各方面能力。
参考文献
[1]夏吟,阴健.外卖O2O平台发展现状与对策研究[J]. 信息与电脑(理论版),2015(14):107-109.
[2]亿欧,数据解析,为什么中国外卖交易平台数据远超国外[J].生活服务。2018
[3]任中方,张华,闫明松等.MVC模式研究的综述[J].计算机应用研究,2004(10)
[4]胡启敏,薛锦云,钟林辉.基于Spring框架的轻量级J2EE架构与应用[J].计算机工程与应用,2008(05)
[5]薛峰,梁锋,徐书勋,王彪任. 基于Spring MVC框架的Web研究与应用[J]. 合肥工业大学学报(自然科学版),2012,35(03):337-340.
[6]荣艳冬. 关于Mybatis持久层框架的应用研究[J]. 信息安全与技术,2015,6(12):86-88.
[7]周玲余. 基于jQuery框架的页面前端特效的设计与实现[J]. 计算机与现代化,2013(01):61-63.
[8]兰旭辉,熊家军,邓刚.基于MySQL的应用程序设计[J]. 计算机工程与设计,2004(03):442-443+468.
[9]罗扬威,曾纪沾,网络订餐管理系统应用[J].科技传播,2018,10(17)
[10]许旺央. 网上订餐系统的设计与实现[D].厦门大学,2013.
[11]肖睿,肖静,董宁,SSM轻量级框架应用实战[M],人民邮电出版社,2018
[12]文欢欢,刘振宇,吴霖,基于Mybatis和JDBC的分页查询研究[J].电脑知识与技术.2015(25)
[13]刘中兵,开发者突击[M].电子工业出版社,2008
[14]杜丽英,才智基于JSP的网上订餐系统研究[J].2014(36)
[15]张波,张福炎基于JSP技术的Web应用程序的开发[J].计算机应用研究.2001(05)
致 谢
在导师的耐心指导下,我得以顺利完成了此篇课题的写作。导师具备细致的学术精神、耐心的工作理念、渊博的知识储备、平易近人的沟通方式,这些都对我产生了很大的影响。使我确定了写作目标,掌握了研究方法,而且有序地完成了所有的课题工作。无论是课题题目的确定、思路的拟定、以及课题的写作,所有步骤都离不开导师的帮助,耗费了导师很多的精力,在这里我要向我的导师表达最真挚的谢意。
本次毕业课题得以顺利完成,除了要感谢我的导师外,还要感谢我的同学,感谢同学对我课题的帮助,无论在开题阶段还是写作阶段,在与同学的讨论中对课题的写作思路有了进一步的理解。最后,我要对本专业的全体老师表示由衷的感谢,非常感谢对我指导,使我能够顺利毕业,登上新的平台。
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/159626.html,