基于JSP技术的网上自助点餐系统的设计与实现

2016-01-18 06:01邹钦忠孔令美张艳红
电脑知识与技术 2015年33期

邹钦忠 孔令美 张艳红

摘要:网络的广泛应用使人们的工作和日常生活都发生了质的变化,大家开始使用网络开展电子商务、电子政务、网上医疗、网络教学及网上订餐等活动。该文系统地阐述了网络订餐系统的设计及实现过程,系统具备菜品管理、菜品查询、菜品预订、订单处理和系统管理功能,基本上实现了在线订餐的整个流程。在系统开发过程中,以Eclipse作为集成开发环境,利用MySQL数据库进行数据存储,首先建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到形成满意可行的系统。

关键词:自助订餐;网上订餐;JSP技术

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)33-0178-03

Design and Implementation of the Online Self-Help Ordering System Based on JSP Technology

ZOU Qin-zhong, KONG Ling-mei, ZHANG Yan-hong

(Guangdong Polytechnic Normal University, Tianhe College, Guangzhou 510540, China)

Abstract: Widely used network makes people work and everyday life have undergone a qualitative change, we began to use the network to carry out e-commerce, e-government, online medical, online teaching and online ordering and other activities. This paper systematically describes the design and realization of network ordering system process management system with dishes, dishes inquiry, dishes book, order processing and system management functions, and virtually the entire ordering process online. In the system development process, with Eclipse as an integrated development environment, use MySQL database for data storage, first established the system application prototype, then the initial prototype system needs iteration, constantly revised and improved until a satisfactory workable system.

Key words: self-help ordering;the online ordering;JSP technology

1 概述

电子商务便捷、快速的交易形式广受欢迎,这种模式应用在餐饮行业为人们提供了良好的服务。互联网的应用已渗透到人们生活,网络订餐的发展十分迅速。网络订餐可通过在线展示菜品的图片、描述、饮食文化等加强产品宣传,同时极易实现产品管理,只要在后台进行操作,网站马上更新,不因更改菜色而重新印刷菜单。采用Web开发技术实现的订餐系统,用户无需安装第三方软件,能上网就能订餐,甚至可以利用手机上网订餐,操作方便,订餐信息准确。连同用户的信息一起,消费历史和消费习惯可以一起永久保存在系统中,由此可获知客人的喜好,提供更贴心的服务,或者方便地进行菜单的调整。与此同时,现有网上订餐服务也存在重视程度不够、利用率不高、因现场订餐情况与网络订餐情况冲突而造成服务质量的下降等问题。本课题从这些问题着手,通过严密的系统设计,实现订餐系统的管理和良好服务功能。

2 需求分析

通过餐厅的需求并结合自身对餐饮业管理的调查,网上自助点餐系统应具备以下功能:

前臺功能包括:

开台:此模块确定餐桌是否被占用,未被占用就允许开台,并生成订单号;

转台:此模块将已开台转到其他空台;

点菜:此模块用于为用户从菜品里面选择菜式;

结账:此模块用于统计餐厅客户点的菜式,并计算总价。

后台管理功能包括:

菜品管理:此模块可以对菜品的信息进行查询、添加、删除、修改;

桌台管理:此模块是对餐桌的信息的查询、添加、删除、修改的操作;

订单管理:此模块可以对订单的进行管理。统计指定时间段的订单信息,并做出数据分析。

3 系统设计

1)功能模块划分

根据需求分析的结果,将本系统分为前台和后台两大模块。

前台功能主要包括客户进入网站后进行的相应操作。客户需要注册或登录,未注册用户仅能浏览网站信息,不能进行订餐操作。会员注册成功后登录网站,可以进行信息修改、网上订餐、订单查询及修改、网站留言等操作。

后台功能主要涉及系统管理员登录网站后台进行的相应操作。管理者登录成功后,可使用系统用户管理、品类设置、公告发布、菜品信息管理等功能。

订单及管理流程包括用户从开始订餐到网站后台管理者查看订单,实现确认订单、送餐、用户确认订单的整个过程,也是整个订餐系统的运作过程。

2)数据库设计

本系统的数据库包括九个表,分别为菜品表t_goods, 用户注册表t_user, 管理员表t_admin, 菜品类别表t_catelog, 公告表t_gonggao,定单表t_order,定单详细信息表t_orderItem。详情如下:

菜品表t_goods。菜品表主要记录添加进去的菜品的信息,有菜品的Id、菜的名字、菜的价格,goods_catelog_id关联菜品类别表中的主键,记录菜品属于那个类别。

菜品类别表t_catelog。菜品类别表主要记录菜品有哪些类别,类别的名字。

订单表t_order。订单表主要记录用户下订单时所填写的信息,订单的信息。

订单详细表t_orderItem。订单详细表通过order_id关联到订单表t_order得到用户的信息,通过goods_id关联到菜品表t_goods得到菜品的信息,goods_quantity记录数量,从而得到用户所订的菜品的价格。

公告表t_gonggao。公告表主要记录菜品的一些最新信息。

管理员表t_admin。管理员表主要记录管理员的信息,如:管理员的Id、管理员的姓名userName。

用户注册表t_user。用户注册表主要记录用户注册的信息,有用户名user_name,密码user_pw,用于用户登录是使用。

4 系统主要功能实现

本系统用JSP语言来编写网络订餐系统,数据库使用 MySQL,通过编写JavaBeans来进行后台业务逻辑控制,即JSP +JavaBeans + MySQL 三层模式完成整个设计工作。框架采用了Struts2+Sprint+Hibernate。本系统全部基于Internet网络,以JSP语言对网站进行开发,注重用户与网站的交互性。因此在这样的背景下,针对当前Internet网络发展趋势来计网络订餐系统就成为了当今应用软件的首选体系结构。

具备的功能有:

1)从用户角度来看:用户通过在线注册成为网站的用户,可以获得以下功能:菜品浏览,购买菜品,修改密码,修改个人信息,菜品简介、订餐车、留言板等。

2)从网站的角度看:网站应该包含菜品搜索功能:按菜品名(模糊)查询。订单处理功能、确认订单方式,管理员管理:查看用户信息,并根据用户信息和用户订单对菜品进行发派。

1)主页面模块

主页面模块主要设计的功能是显示导航栏、登录窗口、菜品展示、菜品分类、菜品排行榜、网站公告等。

实现过程:通过调用ServletActionContext.getContext().get("request")方法获得名字为“request”的Map集合,在调用getHibernateTemplate().find()方法找到相应的记录,最后调用Map的put()方法将找到的记录存放到Map集合里面。在jsp页面中进行调用,显示相应的记录。

2)用户注册模块

用户注册是为第一次登录网站的用户所设计的。在用户成为本站用户之前一定要注册才可以访问我网站的其它网页。

①用户注册包括:登录名称,真实姓名,设置密码,电子邮件等。

②注册成功后,才可以访问本站的其他页面。

实现过程:新建一个user对象,调用setUserName()、setUserPw()、setUserAddress()、setUserTel()、setUserRealname()、setUserEmail()、setUserSex()、setUserQq()、setUserDel()方法將注册页面填写的信息保存到user对象中,在调用save()方法将user对象保存到userDAO对象中。

3)用户登录模块

用户登录包括:登录名称,输入密码。

当用户登录后由管理员核对该用户的名称和密码是否正确,如果无误的话用户可以通过检查直接进入网站的其它页面进行浏览和订购。

实现过程:通过userDAO.getHibernateTemplate().find()方法查找是否有输入的用户,如果没有则提示“用户名或密码错误”,如果有则进入主页面。

4)菜品展示模块

菜品展示:成功登录后的用户可以浏览菜品,并将想要的菜品提交到填写订单页面。

实现过程:通过调用goodsDAO.getHibernateTemplate().find()方法找到各种菜品,返回的是一个List集合,对List集合进行遍历,调用get()方法依次获得菜品显示出来。

5)订餐车模块

订餐车:成功登录后,用户可以查看自己的订单车,并可以对自己的订单车进行相应的修改。

实现过程:通过goodsDAO.findById()方法跟传递的参数goodsId找到对应的记录,调用orderItem对象的setGoods()方法添加记录,最后调用cart对象的addGoods()方法将orderItem对象添加到订餐车。

6)订单确认模块

订单确认:用户对订餐车所订的菜品确认无误后,进行相应的信息填写,以便进行送货。

实现过程:通过ServletActionContext.getContext().getSession()获得session对象,调用get()方法获得订餐车的信息、用户的信息,调用setOrderBianhao(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()))生成订单编号。

7)订单提交模块

订单提交:对用户所下订单进行订单信息的一个输出。

实现过程:通过对订餐车里的菜品进行一个遍历,对菜品进行总金额的计算,同时生成一个订单编号和下单日期,对填写的送货地址和付款方式输出。

8)后台管理员登陆

这是进入系统时的身份验证,用户首先要从软件开发者那里申请用户名和密码,才可以进入。

实现过程:通过adminDAO.getHibernateTemplate().find()方法查找是否有输入的用户,如果没有则提示“用户名或密码错误”,如果有则进入主页面。

9) 后台主界面

后台主界面:主要是管理员对用户、菜品类别、菜品、订单、留言、公告等进行相应的管理。

实现过程:后台主界面的布局是顶端topFrame调用top.jsp页面,左边BoardMenu调用menu.jsp页面,主要内容界面调用sysPro.jsp页面。

10)菜品类别管理

菜品类别管理:管理员对不同類别的菜品的添加及对添加的菜品类别进行删除等操作。

实现过程:通过调用catelogDAO.getHibernateTemplate().find()方法找到菜品类别,返回的是一个List集合,对List集合进行遍历,调用getContext().get()方法依次获得菜品类别,返回的是一个Map集合,调用put()方法添加菜品类别显。

11)菜品管理

菜品管理:管理员对菜品的添加及对添加的菜品进行删除、编辑等操作。

实现过程:通过调用goodsDAO.getHibernateTemplate().find()方法找到菜品,返回的是一个List集合,对List集合进行遍历,调用goodsList.get()方法依次获得菜品信息,调用ServletActionContext.getContext().get("request")方法获得Map集合,调用Map集合的put()方法添加菜品。

12)订单管理

订单管理:管理员对用户所下订单进行查看、受理、删除等操作。

实现过程:通过调用orderDAO.findById()方法和传递进出的参数orderId查找到订单,并在显示的页面对订单进行处理。

5 系统测试

此次测试采用黑盒测试方法。做了许多测试用例,但限于篇幅只写出了几个典型的测试用例。在测试的整个过程中,每个模块的功能都比较成功,但也发现了一些问题,如在数据库等多方面没有数据的时候出现异常等,发现后及时做了修改。

1)登录、注册模块测试

2)订餐服务模块测试

3)订单处理模测试

4) 菜单管理模块测试

6 总结

在本系统开发过程中,遇到了各种业务上和技术上的问题,经过学习和研究一一解决,在今后的改进中,我将侧重于数据分析,力求在实现用户自助订餐的同时,能为餐饮管理提供决策支持。

参考文献:

[1] 余张元.基于嵌入式技术的无线自助点餐系统的研究与实现[D].成都:西华大学, 2010.

[2] 刘辉,谢明华,龙英勇.基于ZigBee技术无线自助点餐系统的设计[J].自动化技术与应用,2009,28(5):78-81.