基于JSP的网上订餐管理系统的设计与实现(包调试成功)
时间:2023-05-30 21:00:01 | 来源:网站运营
时间:2023-05-30 21:00:01 来源:网站运营
基于JSP的网上订餐管理系统的设计与实现(包调试成功):毕业设计(论文)任务书
第1页
毕业设计(论文)题目:基于JSP的网上订餐管理系统的设计与实现毕业设计(论文)要求及原始数据(资料):1.综述目前国内外网上订餐管理系统的现状;2.深入了解网上订餐系统的管理方式以及软件实现相关技术;3.熟练掌握网上订餐系统的业务流程实现,训练编写开发模块程序的能力;4.设计并实现网上订餐系统对于客户(订餐方),供货商(管理员),支付等模块的支持,维护;5.深入分析网上订餐系统的业务逻辑,及实现系统的关键技术与编写语言;6.训练检索文献资料和利用文献资料的能力;7.训练撰写技术文档与学位论文的能力。 |
---|
第2页
毕业设计(论文)主要内容:1.综述网上订餐系统在线上,线下餐营业中的应用;2.了解网上订餐系统设计思想以及实现应用的相关技术;3.熟悉网上订餐系统标准的业务流程;4.设计网上订餐系统针对用户,店铺,支付等功能的模块支持;5.深入分析网上订餐系统的关键技术与编写语言以及业务的设计流程;6.熟练掌握基于javaEE的系统的代码设计以及编写;7.设计与实现网上订餐系统具体模块的程序,实现的功能: (1.)用户模块: ①用户注册登录模块 ②用户管理模块 (2.)后台模块: 系统后台管理模块学生应交出的设计文件(论文):1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 |
---|
第3页
主要参考文献(资料):[1] 康牧,JSP动态网站开发实用教程,清华大学出版社,2009.[2] 戴维尔,JavaScript程序员教程,电子工业出版社,2010.[3] 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2008.[4] 唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2008年10月.[5] 卫红春等著.信息系统分析与设计[M].杭州.清华大学出版社.2009.[6]张文静 林琪著.JSP程序设计.人民邮电出版社.2005.[7] 张孝祥、徐明华, JAVA基础与案例开发详解, 清华大学出版社, 2009.[8]张洁才,Java web应用开发教程,科学出版社,2005.[9]戴维尔,JavaScript程序员教程,电子工业出版社,2010.[10] James D. McCaffrey等著.NET软件测试自动化之道[M]. 杭州.电子工业出版社.2007.[11]张大方 李玮等著.软件测试技术与管理[M].湖南.湖南大学出版社,2007.[12] James Turner,Kevin Bedell. Struts Kick Start[M]. SAMS,2009.[13](美)Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2005.[14] (美)H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2004.[15] (美)David flanagan著.Java技术手册(第五版).东南大学出版社.2006. |
---|
基于JSP的网上订餐管理系统的设计与实现
摘 要
随着科学技术与经济的快速发展,网络信息技术也有了显著的提升与进步,当今的社会是一个集数字化,网络化,信息化的,并且是以网络为核心的现代化社会。伴随信息互联网的高速成长,使得互联网应用也走进家家户户的日常生活。网上订餐作为一种新的生活方式,更加新颖。
毕业设计中,界面的设计主要使用了在jsp插入HTML语言以及JavaScript对系统的页面进行相关的加工处理完善以使得页面实现的效果尽可能的满足美观的要求。而对于后台的设计主要是使用了javaSE基础编程,及javaEE中的Jsp页面的动态编程,servlet处理交互逻辑,并且使用jdbc连接数据库,数据库则选用了更为高效的MySql数据库。
本论文就此次毕业设计的系统内容,从餐品的管理,餐品的分类以及查询,到订餐车实现,客户对订单的处理,再到系统对订餐和餐品的管理。系统从业务流程的角度上分析,完成了订餐系统的基本功能,可是使得用户通过互联网进行点餐以及交易。相比于以往的订餐方式,网上订餐更加便捷,高效,对于餐厅更加节省人力,有利于管理,对于顾客更加省时省力。
关键字: 网上订餐系统; JSP; 系统管理
Design and implementation of online ordering system based on JSP
Abstract
With the rapid development of science and technology and economy, network information technology has also been improved and significant progress, the society is a set of digital, network, information, and network as the core of the modern society. With the rapid growth of information and Internet, Internet applications have entered daily life in every family. Online ordering as a new way of life, more innovative.
The graduation design, the interface design of the main use of the HTML language and JavaScript system to insert page processing related to the perfect page to achieve the effect of as much as possible to meet the aesthetic requirements in jsp. For the background of the design is mainly used javaSE based programming, dynamic programming and javaEE Jsp page, servlet interactive logic, and use JDBC to connect to the database, the database is more efficient in MySql database.
This paper on the graduation design of the system content, from the management of the meal, the classification of food and query, to the order cart, customer order processing, and then to the system of ordering and food management. From the point of view of the business process, the system has completed the basic functions of the ordering system, but it allows users to order and trade via the internet. Compared to the previous way of ordering, online ordering more convenient and efficient, for restaurants to save more manpower, is conducive to management, for customers more time and effort.
Keywords: online ordering system; JSP; system management
目 录
摘要I
AbstractII
绪 论1
1 系统概述与技术介绍2
1.1 课题背景2
1.2 B/S结构介绍3
1.3 JSP技术介绍4
1.4 JavaScrip语言介绍4
1.5 MySQL数据库介绍5
1.6 MyEclipse介绍5
1.7 MVC模式介绍6
2 系统需求分析7
2.1 开发环境7
2.2 需求分析7
2.3 可行性分析8
3 系统概要设计9
3.1 系统设计概述9
3.2 系统功能分析10
3.3 系统用例图12
3.4 系统功流程图14
4 数据库设计与实现15
4.1 数据库结构设计15
4.1.1 概念结构设计15
4.1.1 表概要说明16
4.1.2 数据表的结构16
5 系统的实现20
5.1 前台模块首页20
5.2 用户注册登录管理22
5.3 用户订餐管理功能23
5.4 用户其他功能操作页面27
5.5 后台管理员登录,注册功能27
5.6 后台管理员菜品管理28
5.7 后台员工及会员管理29
5.8 后台材料采购管理29
5.9销售订餐及统计管理30
6 系统测试32
6.1 测试方法32
6.2 系统流程32
6.2.1 前台首页测试32
6.2.2购物车模块测试32
6.2.3 菜品管理模块测试33
6.2.4 会员注册模块测试33
6.2 系统测试结果33
总 结35
参考文献36
致谢37
英文原文38
中文翻译45
绪 论
随着我国在本世纪科学技术与经济的快速提高,网络信息技术也有了显著的提升与进步。在我们平日生活中有很多生活方式以及习惯随着周围信息化的快速提高也有和以往相比变化越发的翻天覆地。本次毕业设计“基于jsp的网上订餐系统的设计与实现”,相比与之前传统的电话订餐,门店订餐这种靠无线电话,人工传递的方式的信息途径,这些方式解决问题的效率很低,店家(餐厅)不能及时将餐厅对菜品的调整通知顾客,顾客对于用餐需求也不能进行调整,线下的交流并不能形成方便快捷的交互。很多时候对于,餐厅以及顾客都是一种损失。由于上述缺陷,为了适应当前时代信息快速发展,数据大爆炸的趋势,采用先进的发展的网上订餐管理系统使上述的种种缺陷得以得到缓解和解决,精简了餐厅的工作流程,顾客的订餐更加便捷,从而提高了餐厅的营业额。由于网络的的快速发展,所以订餐系统随着网络也要有一定的发展与变化。因此毕业设计“基于jsp的网上订餐系统的设计与实现”是非常有必要的。网上订餐系统对订餐所涉及的两个主要用户:客户与店家(餐厅),在实现网上订餐之前,双方进行订餐工作,双方都需要花费大量不必要的时间精力。而快速发展的网络技术,使得订餐系统中所要使用的管理流程在很大程度上做到了极大的简化了,使得餐厅的管理系统更加快速高效,更加便捷。提高餐厅工作人员的整体工作效率,更加给使用订餐系统的顾客更加便捷的使用享受和良好的用户体验。
从始至终人们都寻求便捷,舒适的生活方式。网络作为提高生活水平的重要工具,在出现后,人们逐渐对其产生了依赖,在依赖的同时也希望网络能给自己带来更方便的帮助,从而大量的销售网站,娱乐网站等等也就慢慢诞生了,这个网上订餐系统是一种基于B/S架构的一种系统模式,订餐系统网站的上手非常的方便,即使第一次登陆,通过网站的指引也会让您订餐非常顺利便捷,如同多次订餐的老顾客一般。
此次毕业设计的系统,网上订餐系统的开发与设计,在系统可靠性,以及项目的扩展性上占有极大优势。此外对一些java相关技术进行了部分研究,设计并且实现系统,同时为以后自己的可能还要做的其他项目打下了有效以及坚实的基础。
1 系统概述与技术介绍
网上订餐系统作为一个销售管理系统,首先在页面的结构上一定要相对有自己的独特之处,凸显餐厅的风格,餐品的质量。只有如此才能从一开始吸引顾客的目光,通过美观的页面满足顾客对此类订餐系统的好感依赖以及业务功能的需求。与此同时,系统也要有先对强的实用性,系统的实用性不强,这样的系统会是的顾客产生厌恶心理,不利于一个餐厅的未来发展。当然,作为一个销售管理系统,要对顾客的点餐做数据统计,这样才能方便餐厅对该顾客的用餐习惯分析,更好的对顾客实施更加人性化的服务。
1.1 课题背景
上世纪90年代,互联网逐渐走进人们的视野,在不知不觉中改变着社会的商品交易方式。国内各大企业从认识到互联网的重要性之后,一直坚持不断的探索网上交易的可能。但是由于网络生活具有很大的虚拟性,商家的信誉很难得到保证、有关网上交易的法规未出台、物流的滞后以及其他的一些问题,都成为了网络交易发展的绊脚石。但是,社会的进步是具有持续性的,21世纪以来,各个瓶颈问题包括网上支付、物流速递等一一被攻破,网上交易的黄金时代也随之来临。
调查显示,由于科技的进步极大地繁荣了物质生产生活,人们对于生活的便利性要求进一步提高,网上交易特别是以食品外卖为代表与大众日常生活休戚相关的网络交易量将在未来几年达到高峰。
网上交易这一方式给人们的消费模式注入了一股新的活力,极大地冲击了原有的传统购物消费习惯。网上订餐这一方式,在90后人群中拥有大量的支持者,促使他们做出选择的,不仅仅是这一形式的便利性,还包括相关网站对于消费者的引导。
1.2 B/S结构的介绍
此次系统的设计过程主要运用到了我们在学校以及公司经常提及使用的B/S结构。所谓的B/S系统就是浏览器、服务器的系统结构。网上订餐系统使用B/S结构,主要就是需要服务端的计算机安装数据库以及服务器。而在客户端,一个浏览器就足够。服务器在服务端运行,浏览器在客户端运行,
B/S结构作为目前最先进的软件构造技术,在用户使用的浏览器向服务器提交了一些请求之后,服务器端如果接收到了用户在浏览器端发送的请求之后,服务器端对从浏览器接收而来的请求对其进行相应的业务逻辑处理,随后将其完成处理后的结果返回给浏览器所在的客户端。
B/S结构也是有很多种的,例如:针对OA系统的开发,这些系统主要包括应用程序的研发(基于C/S结构的开发),以及使用传统的C/S结构的跟网络技术结合的混合应用,以及到目前为止是我们常常用到的网站制作的技术。但是不可否认的是,每中结构以及技术都有自己的优点以及缺点:在此前的C/S结构中,更多的它是一种比较传统的使用较为广泛的软件开发的模式,主要是通过客户端以及数据库两层结构完成系统的实现,在两层之间还可以加入其他层次与结构,C/S作为先前传统的软件开发标准以及开发设计结构,在伴随网络和软件的开发技术快速进步,在各种新兴技术不断出现下,被取代或弥补了其结构的很多缺陷,于是也被其衍生出来的新兴结构技术在系统开发的过程中渐渐的将其取代。
1.3JSP技术的介绍
此次网上订餐系统中页面主要使用到的技术是java的JSP技术,JSP技术之所以被广泛被使用到各种项目中去,主要也是因为其自身拥有的很多功能,这使得在项目中可以实现满足开发人员,程序员对项目所需要的效果。
作为JSP技术的基础,servlet技术在此前的开发中一直被开发人员所应用。JSP技术的优点:
(1)进过一次的开发和编写,可以在多种平台运行。因为JSP/Servlet都是基于Java变成语言的,因此具有其编程语言的一个主要优点——平台无关性,这个就是著名的的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。
(2)系统的多平台支持性。在目前已知的所有平台JSP技术可以进行任意的环境开发,并且在平台中将项目部署在任意的环境里,相比于其他技术,可以根据自己项目的需求任意的环境中拓展。这些优势相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。JSP可以运行小到从有一个jar文件,大到多台服务器进行集群和负载均衡,多到多台Application进行transaction,还有消息处理,从一台服务器到无数台服务器,Java程序编程语言显示了其巨大的能量。
(4)功能得多态多样以及获得大多数开发工具的技术支持。这个优势和ASP有点类似,java拥有众多的的开发工具并且极为优秀好用。并且都是免费下载使用的,而且可以成功稳定得在多个平台上顺利运行。
(5)JSP标签可扩充性。JSP对Web网页的动态构建主要是利用脚本技术和标签,JSP技术站在开发者的角度考虑允许开发者拓展JSP标签,定制专属的标签库,xml标签拥有很好的兼容性以及强大的功能,网页制作者可以充分利用,减少对脚本语言的大量依赖,利用自己定制的标签,使网页制作程序员降低了制作网页的难度以及复杂度。
1.4JavaScript语言介绍
此次毕业设计,在其中的前台jsp页面中大量的使用了前端脚本语言JavaScript。 JavaScript编程语言以其独有特性,使得他在目前的大多数项目的前台页面设计以及编程都占有重要的一席之地。由于js设计来的产品会主要运行在用户的浏览器客户端,使得只要用户点击页面的一些按钮或者特殊位置,就可以触发特定的事件进行操作,在页面的JavaScript脚本就会将事件传给客户端(浏览器),在客户端被设计好的事件就会执行进行相应的事件处理完成一系列的操作。
网上订餐管理系统在前台页面的编写设计中就多次使用到了JavaScript这种流行的前端编程语言,众多的优势,使得很多项目的前台都是它和它发展衍生的众多类库编写的,例如我们熟知的:jQuery,easyUI,Extjs等在众多的丰富的前端js类库。
网上订餐管理系统在很多地方都用到了JavaScript脚本语言,例如:顾客以及管理员登录页面时候的,检出数据是否有效,包括重复为空等场景。
1.5 MySQL数据库介绍
首先要说的是MySQL是一个开源免费的数据库。这也是为什么作为一个小型关系型数据库管理系统,却获得了大量的使用,当然这并不是它的最大优点。MySQL数据库拥有很多优点,比如说:MySql的适应性很好,运行和反应速度快,使用的可靠性高。与此同时,结构化查询语句是MySql数据库系统主要使用的数据库管理方式,结构化查询语言也是目前在数据库管理语言中最受人们欢迎的,也是最为常用的。因此在很多的项目系统开发中都会被开发人员关注,经常使用。由于数据库开发者的允许,MySql作为开源的软件,在官方网站和很多其他网站都可下载到各种版本的MySql数据库。并且根据个人或者开发团队的项目需要对下载的代码做出合理的修改。由此我们可以看出,作为一个小型的关系型数据库,在一些项目的管理上是一个很好的选择,当然这也是在此项目没有超出MySql的数据处理能力的范围之外。
1.6 MyEclipse介绍
此次毕业设计主要是面向顾客用户在前台页面订餐,后台管理人员对前台页面出来的数据请求进行数据处理,并对客户端页面进行及时调整,完善的管理系统。
MyEclipse开发软件对系统项目的开发更加方便快捷,开发项目的管理更具有条理性。相比于被广泛使用的Eclipse开发软件,MyEclipse在Eclipse开发软件的基础上进行了详细的优化和功能的完善,并且对Eclipse的开发环境进行了优化,最大的限度进行了拓展。使用Eclipse中很多时候我们自己要寻找安装插件,但是MyEclipse基本会帮开发人员在使用之前就集成好了,这对于开发人员的开发是十分便利的,因此目前正在广泛使用于企业级集成开发中去。而且,MyEclipse开发软件在应用程序的整合方面也显得十分成功,如果开发人员能十分熟悉Eclipse,那么对MyEclipse的使用也一定不会陌生,因为MyEclipse的快捷键与Eclipse基本保持一致。
1.7MVC模式介绍
此次毕业设计为了能够在设计实现上达到最初的想法及要求。并且使完成的系统可以具有一个优秀系统所拥有的一些优点:安全性高,可移植性好,跨品台性高,拓展性优秀,还能具有分布式结构。因此在项目中用到了前文所介绍的B/S结构体系,我所设计实现的订餐系统正式基于Java编程语言的B/S设计模式的。为了更加完善系统,结合在大学时期学过的计算机软件知识,我还用到了另一个结构模式,MVC三层结构,MVC三层结构主要是指基于模型model,视图view以及控制controller的结构模型,而MVC正是这三者英文的首字母缩写。
控制器,视图,模型三层软件设计模式是MVC软件设计模式的根本。这三层模式对应到了实际项目系统中的web服务器。目前,在网上订餐管理系统中主要使用的MVC模式,如下图。
图1-1 MVC设计结构图
由以上的结构图可以得知,在此次的项目系统中,前台界面页面的主要任务就是使用系统的用户可以正常的使用系统逻辑正确完成所要实现的业务。当我们使用网上订餐管理系统的时候,仅仅需要在用户的本地计算机,移动通讯设备安装一个浏览器,在这里使用的浏览器不会限制其版本,开发团队以及类型。用户就可以通过这个浏览器作为客户端与我们的网上订餐管理系统建立网络连接,用户在使用的浏览器中发送需求信息,交由在系统当中的业务逻辑进行准确的数据处理,这些过程主要是由MVC结构中的对应层次进行处理的。业务逻辑得到准确的执行处理后,将处理好的数据进行数据库的数据交互。在模型层中,数据访问层必不可少,他主要实现了当前的系统(网上订餐管理系统)对数据的增、删、改、查等数据处理操作。
由上述的阐述,我们可以得出MVC设计模式具有众多的优势,其中主要是有:
- 低耦合性,高内聚性
- 有利于开发者使用,极高的重用性
- 可以简单方便的使用,快速的部署
- 具有比较好的可维护性,易于未来的维护
- 具有生命周期本身成本较低的优势
- 软件过程化的管理方法更有利于开发的进行
2 系统需求分析
2.1 开发环境
此次毕业设计“基于JSP的网上订餐管理系统”的开发计算机环境主要是学校配发的戴尔品牌笔记本电脑,型号是惠普242G1,处理器为英特尔酷睿i5 3代系列,内存容量为 4GB,显示屏 14英寸;显卡芯片品牌NVIDIA,型号NVIDIA GeForce GT 730M+Intel GMA HD 4000;硬盘品牌希捷,容量500GB;使用的系统是Windows7旗舰版 SP1。
在我开发完成的订餐项目系统中,主要使用的数据库是当前非常受欢迎的开源免费的数据库MySQL。进行项目系统开发,发布管理的软件也是MyEclipse工具。使用到的技术,主要是JSP技术,以及前端流行的脚本语言JavaScript,还有JAVA编程语言,HTML标签 等。此次完成的系统项目,订餐管理系统是不需要使用户安装客户端程序就可以使用,用户只需要使用浏览器就可以正常的,完整的使用订餐管理系统的全部所有功能。
2.2 需求分析
参照软件开发的标准规范,参考很多成功的软件开发案例,软件开发很重要的一环就是软件需求分析。软件需求分析当中很重要的一点就是通过这次分析,真正准确了解到用户的真实需求,完整准确地项目设计以及编码开发,这样才能在项目完成之后,交给用户一个满意的系统。不仅如此,同时还能在软件开发之初,对软件项目进行风险评估。最后完成一次完整的软件开发设计。
软件项目的需求分析这个在软件开发过程中至关重要的一环,无论在什么时候都占有着不可忽视的地位,不能被省略或者敷衍而过。这正是因为它在整个的项目开发当中有着举足轻重的作用。因为软件项目的需求分析,才能在项目的设计开发之前,充分理解用户需要,准确的明确开发的方向。在开发的过程中知道。什么功能是必须实现的,什么工作是必须完成的。对系统进行全面的定义,准确,具体的需求,才能更好的实现在项目开发当中具有极其重要的功能。
一个完善优秀的项目系统在开发之初,开发的初期就要准备充足的资料,进行项目的需求分析。只有在这个阶段完成一个明细,详尽的需求分析,我们才能在后期的设计,编码中更好的实现系统功能,完成一个用户满意的系统。
2.3 可行性研究分析
在开发的前期,对一个项目系统进行可行性分析,这是软件开发过程中不可或缺的工作。从多个角度,维度进行可行性分析,可以将项目分析的更加透彻具体,从项目的方方面面来深入理解项目系统。
- 技术可行性分析
在目前大多数的公司使用到的软件开发工具是MyEclipse ,例如我目前实习的公司就是用的是MyEclipse2016,因此我在我此次的项目系统,网上订餐管理系统就是用到了MyEclipse 软件开发工具。ava作为一当下最受欢迎关注的编程语言,历久弥新,而且方便灵活使用,是此次开发系统的不二之选。
(2)经济的可行性分析
此次毕业设计,在整个项目系统设计编码完成之后,用户不需要在自己所在的客户端安装任何的客户端应用程序,只需要正常上网就可以完成对系统的访问和使用,除此之外,只要保证项目系统被正确的部署在服务器上,并且已经正常运行。那么,用户就可在任何连接互联网的浏览器上对系统进行访问。
(3)法律可行性分析
此次毕业设计“基于JSP的网上订餐管理系统的设计与实现”,不仅可以提高餐厅对订餐的管理效率,为顾客对订餐需求上提供便利,提供更加贴心优质的服务,良好的用户使用体验。而且在整个的开发过程中都符合具体的软件开发流程及规范的。在项目的的开发过程中使用到的都是一些开源的免费的数据库以及开发人员主要使用的开发工具,参考以及使用到的一些代码,也都是在开源社区和论坛分享的主要开源代码。因此,此次的网上订餐管理系统是不存在任何问题,在法律上是可行的,满足法律可行性的所有要求。
为了实现这些要求,我对界面页面的开发做到最大化的简单易懂,将功能实现尽可能的减少不必要的步骤,做到让顾客在最短的事件内可以快速订餐,突出餐厅餐品的特色。做到只要会使用电脑查看网页,就能成功点餐。因此,在操作可行性上也十分可靠。
3 系统概要设计
3.1 系统设计概述
系统的设计阶段作为在项目开的发整个过程中,最为复杂的一环,其实也是在项目开发的整个过程中极为重要的的一环,必须经过,必不可缺少。在进行系统项目的设计之前,说明系统项目已经完成了对其自身的分析与设计阶段,这是一个具有发展性的过程,将从分析阶段得出的有些抽象的用户需求进行具体的实现,编码。在对系统项目的设计过程中需要考虑众多因素,例如在系统实现过程中所面对的内在环境和外在因素,对项目进行良好的业务和功能完善以及应该具有的敬业态度。
作为主要的任务和目标,在系统设计阶段就是为了满足在系统分析阶段提出的用户要求.因此,要从用户的要求出发在不仅可以满足系统分析阶段得出的对系统项目逻辑功能的同时,还要充分考虑到多方因素,包括技术,成本以及时间环境等相关方面。对于不论是在正在进行中的整体的设计结构还是局部的每一个部分,都有相关的技术和针对性的应对方案。在合理的要求和基础上,对项目系统所必要的需求进行满足,并且提出该系统具体到实处的实行方案,使其可以得到完整的实现,完成最初的目标以及要求。
系统设计的主要方向以及相关要点:
- 在系统设计的阶段,主要工作涉及到了绝大多数都是技术以及专业知识。
- 为了满足用户的需求,在系统项目的设计过程中,可以对之前已经得出的系统项目分析结论作出一些修改,当然,这是基于非原则性上的。
- 使整个项目系统最终可以获得成功,不仅仅需要完善的分析,严谨的设计,更需要系统项目的设计环境。这个环境不仅仅是技术环境与管理环境,更是两者的有效结合。因此,这是急不可缺的重要一点。
有上述可知系统设计的要点,那么为了更好地设计系统项目就需要了解系统设计的原则:
- 易用性原则。对项目做系统设计是为了,开发出的系统项目,可以满足用户提出的需求,达到用户的满意。这种满足需求表现在各个方面,例如:用户的业务需求,用户的逻辑需求,以及使用户处理部分业务时候更加简便,提高用户的用户体验。
- 开发阶段原则。开发项目系统软件,在系统技术选择阶段主要是站在系统的数据结构的角度进行设计与开发,而实现功能阶段则有不同,这是需要站到用户需求以及开发人员实现的角度考虑的。
- 业务完整原则。设计实现的项目系统软件,要保证在完成业务的同时保证数据的完整性,减少数据的无处,例如数据库中常常出现的脏读,误读等数据误差。
- 规范化的业务原则。在最初的设计阶段中,系统主要是完成用户需求要求的业务,但是在实际的操作总。对于系统项目的要求是更高的,它不仅要正确的完成用户的业务要求,也要面对完善的业务流程,以及系统安全性。
3.2 系统功能分析
作为网上订餐管理系统主要是为顾客提供便捷,全面的订餐服务,重点要放在面对顾客的页面功能上,其次是管理员对餐品以及餐厅的管理,系统主要模块的设计:
1.前台模块:
- 食品展示模块
- 食品查询模块
- 购物车模块
- 收银台模块
- 用户维护模块
- 订单查询模块
- 公告模块
- 后台模块:
(1)食品管理模块
(2)用户管理模块
(3)管理员维护模块
(4)订单管理模块
(5)公告管理模块
(6)留言管理模块
如图3-1系统功能层次图所示。
主要包括这几个方面,其中顾客订餐功能模块是主要重点模块,其次是管理员管理功能模块。当订餐系统管理员使用拥有管理权限的管理员用登录管理员页面的时候。可以看到目前订餐系统中保存的用户信息数据,菜品的数据,员工的数据以及状态,订餐的具体信息,采购原材料的具体情况,以及对顾客页面的管理,例如:留言板,以及营养小贴士等等。通过管理员对餐厅的管理,给予顾客最好的网上订餐服务。
顾客订餐功能的相对应的模块:主要是顾客进入订餐系统网站之后,可以看到整体的订餐系统网站结构,进行系统的客户端登录,注册,以及对现登陆用户的信息修改,搜索菜品,点餐,订餐,支付,留言的相关功能,通过众多的订餐系统功能。
管理员系统管理功能相关模块:主要是餐厅管理员从后台管理页面登录管理系统之后,对订餐系统的一些具体业务的调整,可以注册新管理员,以及对现有登录管理员信息的修改,查看分析管理目前注册的顾客的信息,查看修改调整现有菜品的具体情况,新增,删除,完善菜品;对目前餐厅原材料的采购和统计;以及对餐厅员工的管理,新增删除和调整状态;更重要的是可以对目前已知订餐的及时管理,还有就是对顾客订餐页面的一些人性化管理,查看顾客留言,修改给顾客查看的营养小贴士。
通过这个两个主要的模块,可以完成订餐系统的综合管理,包括了顾客的主要功能,注册,登录,点餐等;以及管理员对餐厅多方面的管理,完成管理员对顾客的服务交互。
图 3-1系统功能层次图
3.3 系统用例图
通过管理员用例图,可以清晰的,直观的看到管理员在网上订餐管理系统中对用户订餐以及用户本身的一些主要的操作:
- 管理员可以管理餐品信息。
(1.)管理员可以添加菜品信息。
(2.)管理员可以删除菜品信息。
2、管理员可以管理订单信息。
- 管理员可以管理订餐系统中注册的用户信息。
(1.)管理员可以删除用户注册信息
(2.)管理员可以修改用户信息
- 管理员可以对留言进行管理。
- 管理员可以对用户进行管理。
管理员用例图图,如图3-2所示。
图 3-2 管理员用例图
通过用户(顾客)用例图,可以更加直观的理解在网上订餐管理系统中主要的客户端服务,用户主要使用的功能以及进行的操作,如下:
- 游客可以注册会员信息
- 游客可以浏览菜品。
- 游客可以查看公告。
4、注册会员的用户可以通过注册信息登录
5、会员可以在订餐页面浏览菜品信息
6、会员可以修改会员信息
7、会员可以对正在进行的订餐进行修改
8、会员可以对完成的订餐进行查询
9、会员可以进行留言
因此,为了可以更加准确,生动的理解上述所说的用户主要使用的订餐服务功能。绘制用例图就很方便的展示了用户使用主要使用的功能,用户(顾客)用例图,如图3-3所示。
图 3-3 用户(顾客)用例图
对于主要功能的业务处理,例如网上订餐管理系统整个业务逻辑处理中最为主要的一部分就是订单处理部分,为了更加直观的理解整个业务逻辑,最对订单的具体的操作如下:
1、可以通过用户操作对订单信息,菜品信息进行添加。
2、可以通过用户操作对订单信息,菜品信息进行处理。
3、可以通过用户操作对订单信息,菜品信息进行删除。
3.4 系统流程图
想对订餐管理系统进行操作,管理员需要登录订餐管理系统的后台管理系统,才能进行一系列的对应管理操作。如果登录时候出现异常,登录失败等状况,系统会要求管理员核对身份密码后重新登录。登录成功之后,就可以通过订餐管理系统的后台模块对整个订餐管理系统进行正确有效的管理。对订单的处理,对菜品的修改,添加,删除。对员工的添加,删除,管理。对原材料的采购登记。订餐管理系统目前的概况,都可以从订餐管理系统的管理员模块进行查看,分析,以及做出及时的相应调整。
如图,是订餐管理系统的后台管理员模块操作的基本流程图,通过路程图,可以更为直观的看到管理员进行登录操作时的系统业务流程,进行登录,成功进行模块的管理,失败则重新登录等操作,如图3-4管理员流程图所示。
图 3-4 管理员流程图
4 数据库设计与实现
4.1 数据库的结构设计
一个项目系统软件的设计开发,数据库可以说是必不可少的,没有数据库,用户的数据无法保存,系统的使用人员无法处理数据,那么整个系统可以说是没有意义,以及没有任何使用价值的。在系统项目中,数据库就是用来给用户,管理员等各种使用系统的角色进行数据存储以及取出等交互动作的。不仅如此,根据数据的数据结构的不同,数据库还会对应有不同的存储方式。
网上订餐管理系统,主要是使用流行的关系数据库MySQL,MySQL是一个开源的免费的关系型数据库,在开发者中极为流行,极为受欢迎。他的众多优点,例如:开源,免费使用,对服务器占用更小,速度更快,是系统更加流畅。这些都使得,系统软件开发的陈本较低,用户体验更佳。
此次,我们毕业设计“基于JSP的网上订餐管理系统的设计与实现”中主要使用到了MySQL数据库,以下,就对主要的数据表结构进行描述与说明。
4.1.1概念结构设计
本数据库为满足网上订餐系统的要求,保证使用者信息准确充分的同时,系统的安全性也同样重要。所以,至少要拥有以下功能:
(1)建立数据表保存使用者注册、登录、验证等功能所需要的数据;
(2)建立两张表,分别保存食品分类信息和食品的详细信息所需要的数据,对食品分类信息分类管理;
(3)使用者确认下单后出现的订单应当记录,包括订单号、地址等详细信息;
(4)订单自动生成滞后,需要记录订单的状态;
(5)除系统管理员外,其他人不能进行系统维护,所以要建立一张表保存管理员的信息;
(6)使用者会对餐品提出意见,那么应该有留言表,留言表内含标题、日期和留言详情。
根据以上信息,网上订餐系统的E-R图如图4-1所示。
图3-2 系统设计E-R图
4.1.2 表概要说明
网上订餐管理系统主要包括了9张数据表,分别是餐品菜品信息数据表c_book,用户顾客注册数据表表member,管理员数据表admin,餐品菜品类别数据表c_booktype,用户评论数据表comment,订餐车数据表gouwuche,营养小贴士数据表news,订单数据表num,订单详情信息数据表orderbook。其中最为重要的5张数据表,将会在详细描述其表结构。
4.1.3 数据表的结构
(1)餐品菜品信息表c_book
餐品菜品信息数据表主要是用来保存菜品的基本信息,价格,菜名,描述等,该表的结构如表4-1所示。
表4-1 c_book的结构
字段名 | 数据类型 | 长度 | 主键否 | 描述 |
---|
id | int | 4 | 是 | ID |
name | varchar | 50 | 否 | 菜名 |
author | varchar | 50 | 否 | 厨师 |
price | varchar | 50 | 否 | 价钱 |
number | varchar | 50 | 否 | 编号 |
type | varchar | 50 | 否 | 类别 |
Sum | varchar | 50 | 否 | 数量 |
Remark | varchar | 50 | 否 | 描述 |
tate | varchar | 50 | 否 | 原材料 |
imgpath | varchar | 150 | 否 | 菜品图片 |
- 管理员信息数据表admin
管理员信息数据表,主要是适用于保存管理员的基本信息。表结构如表4-2所示。
表4-2admin的结构
字段名 | 数据类型 | 长度 | 主键否 | 描述 |
---|
id | int | 4 | 是 | ID |
name | varchar | 50 | 否 | 用户名 |
quanxian | varchar | 10 | 否 | 权限 |
pwd | varchar | 50 | 否 | 密码 |
- 菜品类型数据表 c_booktype
菜品类型数据表,主要保存了当前订餐系统的菜品类型,类型可以根据餐厅的需求,管理员对其进行增加,删除,以及修改等操作管理,如表4-3所示。
表4-3c_booktype的结构
字段名 | 数据类型 | 长度 | 主键否 | 描述 |
---|
Id | int | 4 | 是 | id |
name | varchar | 50 | 否 | 菜品类型名 |
(4)用户(顾客)注册信息数据表member
用户注册信息数据表主要保存了,使用订餐管理系统的用户注册的信息,这张数据表极为重要,表结构如表4-4所示。
表4-4member的结构
字段名 | 数据类型 | 长度 | 主键否 | 描述 |
---|
Id | int | 4 | 是 | id |
name | varchar | 50 | 否 | 用户名 |
pwd | varchar | 50 | 否 | 密码 |
sex | varchar | 50 | 否 | 性别 |
realname | varchar | 50 | 否 | 真实姓名 |
age | varchar | 50 | 否 | 年龄 |
card | varchar | 50 | 否 | 身份证号 |
address | varchar | 150 | 否 | 地址 |
phone | varchar | 50 | 否 | 电话(手机) |
email | varchar | 50 | 否 | 电子邮件 |
code | varchar | 50 | 否 | 邮政编码 |
type | varchar | 50 | 否 | 会员 |
(5)订单详情信息数据表orderbook
订餐详细信息数据表,主要记录了顾客订餐之后,完成的订餐,订餐中主要记录了此时用户完成的订单的详细信息。数据表的结构如表4-5所示。
表4-5 orderbook的结构
字段名 | 数据类型 | 长度 | 主键否 | 描述 |
---|
id | int | 4 | 是 | id |
userid | varchar | 50 | 否 | 用户id编号 |
bookid | varchar | 50 | 否 | 菜品id标号 |
booksum | varchar | 50 | 否 | 菜品数量 |
times | varchar | 50 | 否 | 订餐时间 |
5 系统的实现
5.1 前台模块首页
作为网上订餐管理系统,展现给用户的客户端前台页面是整个项目中最为重要的一环,而首页也是使用户的留下主要印象,重要的得分点之一。一个好的首页能为系统做良好的推广效应,展现系统的主要功能,使得用户可以通过简单快捷的熟悉上手,掌握使用方法,实现自己当前的需求。前台客户端页面首页,运行效果如图5-1。
图5-1 前台客户端页面首页设计效果图
如图5-1,我们可以看到,用户使用的首页展示了系统客户端的主要功能,包括,用户的登录,一些管理员希望用户看到的信息,以及目前餐厅主要的菜品,还有就是重要的模块功能导航栏,通过导航栏的点击,用户可以进入相应的功能模块,实现自己目前的需求,包括:详细的点餐,会员中心,订餐车,留言,找回密码等主要用户使用功能。
首页的部分JSP页面代码:
<table border="0" width="99%" cellspacing="0" cellpadding="0"
height="100%">
<tr>
<td>
<% ArrayList alNewly = (ArrayList) request.getAttribute("books");
ArrayList alType = (ArrayList) request.getAttribute("type");
int tem = 0;
int x = 0;
if (alNewly.size() % 3 == 0) {
tem = alNewly.size() / 3;
} else {
tem = alNewly.size() / 3 + 1;
}
for (int n = 1; n <= tem; n++) { %>
<table cellspacing="0" cellpadding="3" width="710" border="0">
<tr>
<% for (int i = n * 3 - 3; i < alNewly.size(); i++) {
ArrayList alNewlyRow = (ArrayList) alNewly.get(i); %>
<td align="middle" width="710">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" align="center" bgcolor="#FFE3BB">
<font color="#ff9900"><%
for (int j = 0; j < alType.size(); j++) {
ArrayList alTypeRow = (ArrayList) alType.get(j);
if (alTypeRow.get(0).equals(alNewlyRow.get(8))) { %>
<a href="servlet/SearchServlet?types=<%=aTypeRow.get(0)%>">
<%=alTypeRow.get(1)%>
</a><% break;}}
%></font>
5.2用户注册登录管理
用户在使用订餐管理系统客户端页面进行订餐。首先需要登录系统,登录之后才能享受订餐系统带来的便捷快速的订餐服务,如果当前还没有可以登录的账号,首页提供有注册用户的入口。针对已经登录的用户,若果想对自己当前所使用的用户信息进行一些调整,系统也提供了会员中心管理页面,来满足此类用户的需求。如图5-2为用户登录功能的页面:
图5-2用户登录页面效果图
用户进行登录之后就可以进行点餐,搜索等相应功能的操作了,图5-3为用户注册页面效果图。
图5-3用户注册页面效果图
用户登录的程序流程图如图5-3所示。
图5-3用户登录程序流程图
在用户进行注册成为系统的正式用户之后,就可以进行功能的使用了,但是如果出现对当前用户信息的变更操作,就可以在用户的会员中心,对当前登录的用户信息进行修改,如图5-4为用户会员中心页面效果图:
图5-4用户会员中心页面效果图
5.3用户订餐管理功能
订餐管理系统,作为用户使用的客户端的主要功能就是给用户带来便利的网上点餐服务,此次设计实现的基于JSP的网上订餐管理系统,点餐服务主要通过两个页面来展示菜品使用户进行点餐操作,一是首页点餐,首页会展示目前主要的菜品,以及销售排行和新上菜品,根据这些推荐信息,可以给用户带来更加贴心的用户体验;二是搜索点餐,可以通过首页上方的工具栏,点击进入搜索点餐页面,通过菜品的名称或者菜品所属的类别进行针对性的搜索,然后进行点餐,如图5-5为首页点餐页面效果图。
图5-5 首页点餐效果图
如图5-6为搜索点餐页面效果图。
图5-6索点餐页面效果图
搜索点餐页面,通过针对性的搜索可以使用户快速的找到自己需要的菜品,进而完成自己的点餐过程。
进行菜品搜索的servlet部分主要代码是:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Validate vd = new Validate();
String name = vd.getUnicode(request.getParameter("name"));
String types = vd.getUnicode(request.getParameter("types"));
String sql = "select * from s ";
String[] args = {"id","name","author","publishing","number","price",
"storage","brief","type","tate","sums","imgpath","price1","sums1"};
if(name != null && !name.equals("")){
sql += "where name like '%"+name+"%'";
//构建对菜品名称查询的SQL语句
}
if(types != null && !types.equals("")){
sql += "where type='"+types+"'";
//构建对菜品类别查询的SQL语句
}
SelectBean sb = new SelectBean();
ArrayList al = sb.select(sql, args);
request.setAttribute("search", al);
RequestDispatcher rd=request.getRequestDispatcher("/qiantai/search.jsp");
//跳转到前台菜品搜索页面
rd.forward(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
当用户找到自己心仪的菜品之后,进行点餐操作,所选菜品点餐成功之后,将跳转到订餐车页面,订餐车页面将展示目前为止,用户所选的菜品,如图5-7为订餐车页面效果图。
图5-7购物车页面效果图
在购物车页面中,用户可以清晰的看到目前所点的菜品信息,也可以根据目前自己的需求对已经点的菜品进行操作,例如修改数量,或者删除目前选中的菜品,甚至清空,如果认为还有所需要的菜品,可以点击继续点餐,进入点餐页面,继续点餐操作。当用户认为菜品足够,可以点击收银台,进行订单的提交。
购物车流程图如图5-7所示:
图5-8购物车程序流程图
进行提交之后,将进入收银台页面,点击在线支付,将提供支付宝链接,这样就可以支持网上在线支付,使得用户可以付款进而完成当前的订单。如图5-9为收银台页面效果图。
图5-9收银台页面效果图
5.4用户其他功能操作页面
网上订餐管理系统,不仅能让用户进行注册,登录,修改信息的操作,更重要的是让用户得到良好的订餐功能体验。因此,用户除了可以操作上述的订餐页面之外,也可由有其他更加人性化的功能,例如在此次毕业设计“基于JSP的网上订餐管理系统”中出现的营养小贴士,以及在线留言功能。
营养小贴士可以用过管理员在后台进行编写,让点餐的用户看到,提供更加贴心的服务,而在线留言功能可以让用户对当前订餐管理系统中存在的问题,以及改进意见进行表达,达到更好的交互体验。如图5-10为用户在线留言页面效果图。
图5-10 在线留言页面效果图
5.5后台管理员登录,注册功能
作为一个订餐管理系统,仅仅有用户功能的页面是远远不够的,要提供更加全面的服务,为餐厅管理员提供功能管理页面就显得十分重要。通过系统的后台管理管理页面,对餐厅做出实时的管理,了解用户点餐情况以及目前员工的管理,这样才能更好运作系统,使得用户拥有更好的用户订餐体验。
如图5-11为后台管理员登录页面效果图,5-11为注册管理员,以及修改管理员页面效果图。
图5-11后台管理员登录页面效果图
通过登录,管理员可以进入后台管理页面对订餐系统进行管理,可以对当前登录管理员进行修改以及添加新管理员。
图5-12 管理员注册及修改页面效果图
5.6后台管理员菜品管理
管理员通过添加新菜品,以及修改原有菜品,对订餐系统中的菜品进行调整,通过添加菜品的类别可以对菜品进行更加完善的管理。添加菜品时候,通过添加菜名,原材料,价格,图片,以及添加目前拥有的菜品类别等信息,来给用户展示一道菜的方方面面,这样使用户通过网络放心的进行订餐。如图5-13为添加菜品页面效果图。
图5-13 添加菜品页面效果图
5.7后台员工及会员管理
管理员登录后台管理系统之后,不仅能对现有系统注册的会员进行管理,还可以对当前餐厅的员工进行管理,可以添加,删除,修改员工信息,根据目前员工的工作状态也可以在系统中进行标注。添加了员工搜索功能,这样方便了网上订餐管理系统,后台管理模块对员工的综合管理,如图5-14为员工管理页面效果图。
图5-14 员工管理页面效果图
5.8后台材料采购管理
作为一个订餐管理系统,要将每一天做菜使用的原材料进行统计管理,这样才是一个完善的订餐管理系统。对于原材料采购的记录管理,这样更能方便餐厅管理员,对整个餐厅进行全面的管理,做到对每一天的食材的把控,部分食材采购量的调整,对餐厅运营的成本的管理把控。如图5-15为原材料采购管理页面效果图。
图5-15 原材料采购管理页面效果图
通过对原材料的统计把控,以及对一段时间的采购单种类及数量的分析,可以知道什么时候需要采购什么材料,采购的数量的参考量,采购的具体方向。对近期,原材料价格走向进行统计分析,得出对餐厅最为合适的采购方案,避免不必要的采购,或采购的数量不准确,导致的餐厅管理成本的提高,这都是需要注意以及及时避免的。
5.9销售订餐及统计管理
作为网上订餐管理系统,对于当前订餐订单的管理是不可或缺的,因为只有对近期订单进行分析才能知道,用户喜欢的菜品,进而进行针对化的应对,挺高服务质量,对销量高的菜品背后的工作者--厨师,进行奖励管理,提高工作效率,菜品的质量保证。对近期采购单的统计,有效的看出采购方向,和采购数量,为今后采购提供了有力的数据参考保障,避免采购人员出现不必要的事物,餐厅承担不必要的损失。如图5-16为销售订单管理页面效果图。
图5-16销售订餐管理页面效果图
如图可以看到,管理页面提供了多样的搜索条件用来搜索符合条件的订餐,例如:用户id,菜品名称,订购数量,这些搜索条件可以快速定位符合条件的订单,然后反馈给管理员来进行订单的管理。
除此之外,还有统计管理功能,如图5-17为统计管理功能页面效果图:
图5-17 统计管理页面效果图
如图,统计管理页面可以清晰,完整的看到当日的订餐销售量,销售信息,以及当日对原材料的采购量信息,这方便了管理员对餐厅的管理,也为用户提供快速,优质的使用体验实现了坚实的保障。
使管理员对当前餐厅的实时状况有了深刻的认识,哪些菜品销量高,需要提前准备,原材料需要大量采购;哪些菜品销量过低,需要减少原材料的采购,甚至下架。近期的用户更喜欢,哪些类别的菜品,是否与天气季节相关,需要对员工厨师进行具体化的调整,提供了有力的数据佐证,与数据分析的资料。这都对今后餐厅的发展十分重要,也是网上订餐管理系统可以被餐厅使用的重要原因之一。
6 系统测试
在大学四年的专业知识学习中,可以得知。作为完整的规范的软件开发流程,在完成系统设计,编码开发之后,进行软件测试是非常重要的一环。是对完成开发,即将投入使用的系统的一次性能以及质量的综合鉴定。在项目正式上线使用之前,进行的必要工作。也是对项目最初的需求分析,系统的总体设计,编码开发的检验,多方面工作的综合最终审核。
6.1 测试方法
在项目进行完整的整合与交互中,对项目系统进行全面的测试,对项目的整体进行问题的查找,在这个过程中耗时相对而言较多。但是也正是因为系统测试的存在,使得系统有了综合质量的保证。
为了确保网上订餐系统的稳定运行,本节对主要功能模块进行测试。
6.2 测试流程
写好测试的数据以及案例,并对测试数据进行设计逻辑的处理,得出期望结果。
6.2.1前台首页测试
(1)查询模块的测试
首先点击主页正中间的查询栏,在查询栏里中输入要查找的菜品关键字,如果弹出所查找菜品的信息,则说明该模块可行。对该模块进行大量数据的测试,验证其成功无错误。
(2)菜品分类浏览模块的测试
单击页面左边的菜品分类信息,选定某一种类后,系统会弹出属于该类别的所有菜品信息。对给模块进行大量数据的测试,验证其成功无错误,
该模块能够完整地实现功能。
6.2.2购物车模块测试
在本模块中首先对修改数量单元进行了测试,如果填写的数量为可行的有效数字如1、2、3,则系统提示修改成功,如果输入的制服非法,系统默认修改数量为1。通过随机数据的测试,验证其成功无错误。假如使用者订购了同一个商品,系统就会对该商品的购买数量进行累加。
然后对购物车是否能满足使用者的购买数量进行测试,向购物车中添加大量的食品,查看购物车是否会发生崩溃现象。经过测试,购物车完全满足设计要求,达到了预期目标。
6.2.3菜品管理模块测试
(1)添加功能的测试
在菜品添加的功能下,对于已经选定的菜品名、菜品信息、菜品的图片、价格、特价、菜品种类进行添加。通过下拉的选择列表选择菜品的类别,对于菜品图片的添加,需要选择本地的菜品图片,然后上传,当所有必须的食品信息都已经填写完毕的时候,即可上传添加。完成添加以后,随机使用几组不完整的数据对本功能进行测试,均显示失败。
(2)删除功能的测试
以上述添加的这一条记录为例,点击删除按钮,会跳出是否删除的提示信息,点击确定按钮之后,系统返回删除成功的信息。对于菜品分类信息的删除,则需要在本分类之下已经没有菜品信息,否则将不能删除。
6.2.4会员注册模块测试
在会员注册模块中涉及到了三项数据,项目分别为密码和确认密码、使用者真实姓名、住址、性别、E_mail、QQ。测试这个模块准备的数据有:
(1)979332、979332、王艺博、杭州市万柏林区、男、123456@qq.com、123456
(2)岑志云、12345、1234岑志云、杭州市万柏林区、男、bzhi@123.com、6434634
点击注册按钮,输入第一组数据,单击注册按钮网站会提示表单信息不能为空,因为表单信息要全部填写,而昵称没有填写。接着测试第二组数据,两次所输入的密码并不一样,系统会弹出提示。
6.3 系统测试结果
当本次毕业设计完成完整的项目开发之后,对本次的“基于JSP的网上订餐管理系统设计与实现”,进行了相应的测试,主要的情况如下:
在项目开发的过程中,每一个进程的每一步都需要被全面的考虑到,从而确保系统在个个时期具备可控性和稳定性。本章注重对前台首页、购物车模块、使用者注册模块和商品管理模块进行了详细的测试说明。对这些模块进行大量数据的测试,验证其成功无错误。
总 结
此次毕业设计“基于JSP的网上订餐管理系统的设计与实现”,整个的设计与开发的过程中,遇到了很多的疑问与困难,但是通过基地的指导来时的指导以及帮助,与对实习公司的前辈的询问,网上的相关资料的查阅,逐步解决了在设计开发过程中出现的问题,虽然有一些波折,最终完成本次的毕业设计。网上订餐管理系统的主要功能都可以正常的运行,符合最初的用户需求分析,以及功能设计。通过这一次的毕业设计,使我从电脑开发环境的搭建,开发软件的选取,项目需求的分析,系统功能的设计与实现,系统的测试等整个流程有了新的认识,和完整的实践。从这一次的毕业设计,系统开发的过程中,学到了很多知识,不仅仅是从理论方面的,更是从具体的动手实践都有了巨大的提升。例如,对项目使用的数据表结构的设计,对项目功能的具体分析设计,这都十分考验开发人员的逻辑处理能力和开发经验。
虽然在完成毕业设计“基于JSP的网上订餐管理系统的设计与实现”的项目过程中,是一个人独立完成的,但是在这个过程中还是非常明白了团队的重要性,因为在整个的过程中,并不是一个人能单独完成好的。所以要向公司的前辈,基地的指导老师进行请教,在通过问询的过程中解决问题,通过交流解决了一个又一个难题。
通过这一次的开发,我充分明白了在未来的工作中,通过良好的沟通交流,这在项目的开发过程中是多么的重要,只有通过团队的讨论与交流才能对项目开发过程遇到的问题,得出最优秀的解决方案。保证在整个项目中当前的决策时最为合理,为项目系统的成功奠定良好的基础。
在完成此次的毕业之后,进行毕业论文的编写过程中,我越来越发现,理论对于实践的重要性,只有系统的学习整套的理论知识,才能更好的进行软件开发的实践。也让我明白理论与实践的结合,才是正确的学习方式。同时,提升了自己查阅资料,解决问题,交流的能力,在整个过程中收益匪浅。
通过这一次的独立网上订餐管理的设计与实现,在整个的系统设计实现过程中,我也发现了自身存在的问题,与提升的方法以及方向。通过更多的开发实践以及阅读理论书籍,我相信我还可以有更大的提升。在这个过程中也受到了老师,前辈,朋友的帮助,这都使我前进与进步。这一次的毕业设计,对于我未来的工作学习,有着十分巨大的意义以及作用,是非常大的帮助。
参考文献
[1] 康牧,JSP动态网站开发实用教程,清华大学出版社,2009.
[2] 戴维尔,JavaScript程序员教程,电子工业出版社,2010.
[3] 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2008.
[4].唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2008年10月.
[5]卫红春等著.信息系统分析与设计[M].杭州.清华大学出版社.2009.
[6] 张文静 林琪著.JSP程序设计.人民邮电出版社.2005.
[7] 张孝祥、徐明华, JAVA基础与案例开发详解, 清华大学出版社, 2009.
[8] 张洁才,Java web应用开发教程,科学出版社,2005.
[9] 戴维尔,JavaScript程序员教程,电子工业出版社,2010.
[10]James D. McCaffrey等著.NET软件测试自动化之道[M]. 杭州.电子工业出版社.2007.
[11] 黎连业、王华、李淑春,软件测试与测试技术,清华大学出版社,2009.
[12].张大方 李玮等著.软件测试技术与管理[M].湖南.湖南大学出版社,2007.
[13](美)Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2005.
[14](美)H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2004.
[15](美)David flanagan著.Java技术手册(第五版).东南大学出版社.2006.
[16](美)John J.Patrick著.SQL基础(第二版).清华大学出版社.2004.
致谢
在本次的毕业设计“基于JSP的网上订餐管理系统的设计与实现”的设计与开发的过程中,遇到了很多的问题与困惑,在基地的指导老师与学院的指导老师的解惑中,在实习公司的前辈的帮助下顺利完成。
感谢学院指导老师,基地指导老师在完成毕业设计的过程中给予的帮助。
感谢实习公司的前辈对我关心和帮助。
附录:英文翻译
- 英文原文
Hotel Reservation System Based on the JavaServer Faces TechnologyThis paper describes implementation of web -based hotel reservation system whichenables users tobook hotel rooms by means of a web browser. The systemis based on JavaServer Faces technology in thepresentation layer, Spring Framework in the service layerand iBatis library for the data access layer.
- INTRODUCTION
The Hotel Reservation System is a specific type of softwarethat supports, often by means of a web browser, wholeinfrastructure of the hotel for which the system has beendeployed. Its key features are listed below:To search and to book hotel rooms.Tonotify of every event related to a user by sending the email on a given address during the registration process.
To support definition process of each component of the hotel. The components of the hotel are: rooms,promotions, packages, discounts and se rvices.To complete the reservation process by notifying the system about the fact that the guest came to the hotel and received keys to the booked room. - JAVASERVER FACES
The user graphical interface is a crucial part of every computer programme with regard to its responsibility for interaction with the users. This part of application should be flexible,which means susceptible to any needed changes and without any doubts, user – friendly. Regrettably, process of developing such user interface in the main requires usually a profusion of developer's work and time, making the whole development process involved and onerous.The most apting technology to this field is JavaServer Faces (JSF). This holistic, component-based solution for longstanding problems facing software developers has a specific goal: to make web development faster and easier by masking a lot of complexities hidden behind this kind of programming.JSF technology is a server-side user interface framework for Java technology-based web applications. The main components of JSF technology are as follows:
Two JavaServer Pages custom tags library for expressing UI components within a JSP page and for wiring components to server-side objects.The user interface created with JSF technology (represented by myUI on the Fig. 1) runs on the server and renders back to the client (in this case the browser).Because web-based applications, must often appease multiple clients (such as desktop browsers, cell phones, and PDAs),JSF has a powerful architecture for displaying components in different ways. As for the browsers, for which JSF is mostly used, the default rendering technology is HTML 4.0, though the others like WML or SVG are also possible.One of the greatest advantages of JSF technology is that it offers a clean separation between behavior and presentation layers. - SPRING FRAMEWORK
Spring is a lightweight, inversion of control container, created to address the complexity of enterprise application development.Spring makes possible to use plain JavaBeans to achieve things that were previously only possible with EJBs [10,11].Any Java application can benefit from Spring in terms of simplicity, test-ability, and loose coupling. The Spring Framework contains a lot of features, which are well-organized in seven modules.
When taken as a whole, these modules give everything that is needed to develop enterprise applications, although there is no must to build the application fully on the Spring framework. One can pick and choose only those modules that suit best to the application and ignore the rest. This strategy was chosen for the Hotel Reservation System Since one of the core value propositions of the framework is that of enabling choice by not forcing one to apply any particular architecture, technology or methodology, Spring also provides convenient mechanisms for integration with number of third -party frameworks (also with JSF and iBatis). - APACHE IBATIS DATAMAPPER
Apache iBatis JDBC – based Data Mapper provides simple and flexible way to transport data between relational database and Java, .Net or Ruby application. Contrary to popular Hibernate library, iBatis does not directly tie classes to tables or fields to columns, but instead, it couples objects with results of stored procedures or SQL statements using simple XML descriptor letting the developer to reach only for required data. The iBatis framework can map nearly any database to any object model and is very tolerant of legacy designs, or even bad designs.Simplicity is the main advantage of the iBatis over other frameworks.
The Hotel Reservation System was primarily built upon JSF technology for the user interface along with auxiliary libraries –Spring and iBatis. The application architecture is presented in Fig. 3.The composition of the system is modular. Each layer is separated with and appropriate interface layer. Such solution makes the architecture not only more error -resistant but also more flexible for changes. The presentation layer consists of the graphical user interface written in the JSF technology andunderlying backing beans objects. It communicates with the Service layer through the service interfaces.Service layer is the central business part of the system where, on the basis of the user input data, proper decisions are made. It also translates input data into explicit form understood for the Data access layer, with which communication takes place by means of Data access interface layer.The Data access layer cooperates with Data Mapper layer and is responsible for data exchange with database.The Data Mapper layer talks via JDBC to database to ask required data. This is a layer where iBatis Data Mapper plays the main role. - JSF - SPRING INTEGRATION
In a nutshell, JSF – Spring integration makes Spring managed beans visible as variables to JSF, just as if the Spring beans are configured as JSF managed beans.Before diving into the integration specifics of JavaServer Faces,the general integration step for any web framework must be set forth.All that need to be done, is to declare ContextLoaderListener in the standard JEE servlet web.xml deployment descriptor. This listener initializes the Spring's WebApplicationContext that contains all of the business beans in the application. (Fig. 4).The second step in the integration between Spring and JSF is specific just for JSF. The key class used in this process isDelegatingVariableResolver. To configure this variable the faces-context.xml file must be edited. After opening <faces -config> tag <application> tag must be added and within it the <variable-resolver> pointing to the Spring's DelegatingVariable Resolver must be put. The example faces -config.xml file is presented in. The DelegatingVariableResolver delegates value lookups to the default resolver of the underlying JSF implementation, and then to Spring's business context WebApplicationContext. This allows to easily inject dependencies into one's JSF-managed beans.
Example of faces-config.xml file from Hotel Reservation System application - JSF AND GETMETHOD.
The JSF only recommended method for sending input data from an online form to an application server is the POST method,though sometimes there is a strong need for use the GET method instead. In the Hotel Reservati on System the GET method is used during the registration process for bringing about user account activation.The common way to implement the GET method is to create a special filter which can manipulate the header or contents (or both) of a request or response.To put GET method into operation, in case of JavaServer Faces,the following algorithm must be fulfilled in the body of thefilter: - Get parameters from the request.
- Create appropriate backing bean object accordingly to the
view that will be used further. - Store the backing bean object in the current session.
- Set changed JSF context as current.
- Create view and store it in the JSF context.
- Execute backing beans methods.
The Hotel Reservation System was also based on the Spring library, hence some changes to the raw algorithm were necessary.The foremost method for any filter is doFilter() where the proper filtration happens .
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)throws IOException,
ServletException {
FacesContext facesContext =
getFacesContext(request, response);
if (facesContext != null){
request.getRequestDispatcher(
facesContext.getViewRoot().getViewId()).
forward(request, response);
}else{
chain.doFilter(request, response);
}
}
The doFilter method from GET filter implementation As it may be seen on Fig. 6, an additional function implementing the presented algorithm was used to keep the source code clear and easy-to-read.Create appropriate backing bean object.Almost all backing beans from Hotel Reservation System have at least one property of Spring managed -bean origin. Because of that, it is necessary to set this property after backing bean object creation.
WebApplicationContext wac =WebApplicationContextUtils.
getRequiredWebApplicationContext
(servletContext);
RegisterService registerService =
(RegisterService)
wac.getBean("registerService");
ConfirmBean confirmBean = new ConfirmBean();
confirmBean.
setRegisterService(registerService);
Creating backing bean object and setting spring –origin property.Getting Spring managed -bean object requires operating on Spring's WebApplicationContext object that is initialised during the server start-up.Set changed JSFes context as current.When storing backing bean object in the session the whole Faces context becomes changed, therefore it must be set as current in order all modifications take place .
FacesContextFactory contextFactory =(FacesContextFactory)
FactoryFinder.getFactory(
FactoryFinder.FACES_CONTEXT_FACTORY);
LifecycleFactory lifecycleFactory =(LifecycleFactory)FactoryFinder.
getFactory(FactoryFinder.
LIFECYCLE_FACTORY);
Lifecycle lifecycle =lifecycleFactory.
getLifecycle(LifecycleFactory.
DEFAULT_LIFECYCLE);
facesContext = contextFactory.
getFacesContext (servletContext, req,res, lifecycle);
ProtectedFacesContext.
setFacesContextAsCurrentInstance
(facesContext);
Setting JSF context as current Before the actual setting context into current, it is indispensable to grab Lifecycle object. Lifecycle manages the processing of the entire lifecycle of a particular JSF request. It is responsible for executing all of the phases that have been defined by the JSF specification, in the specified order, unless otherwise directed by activities that occurred during the execution of each phase. An instance of Lifecycle is created by calling the getLifecycle() method of LifecycleFactory, for a specified lifecycle identifier. Because this instance is shared across multiple simultaneous requests, it must be implemented in a thread -safe manner. Using the current Lifecycle object along with ServletContext,HttpServletReqest and HttpServletResponse objects the FacesContext can be updated and becomes up to date.
Create view and store it in the JSF context.After making Faces context actual, the new view is supposed to be created and added to this context, nevertheless it is n ot possible to do it with usage of 'new' operator, instead it has to be done in an indirect manner.
UIViewRoot view = facesContext.
getApplication().
getViewHandler().
createView(facesContext,
"/confirm/register.jsp" );
facesContext.setViewRoot(view);
Creating new view and stroing it in Faces context The createView() method of ViewHandler object constructs and return a new UIViewRoot instance initialized with information from the argument FacesContext and viewId . The viewed parameter is always String variable representing (relative to /WEB-INF/ directory) path where the definition file is located.As shown in Fig. 9 the definition of the view is placed in ordinary JSP file and is located in subdirectory of a WEB-INF directory.Executing backing beans methods The last step is the actual execution of methods of the underlying, proper to created view backing bean object. This example of the filter for the GET method was based upon one used in the Hotel Reservation System, which works as a registration confirmation tool, so in the end, the method responsible for confirmation should be invoked:confirmBean.confirmRegistration(userId);
- CONCLUSIONS
The Hotel Reservation System is developed application designed accordingly to the modern programming trends with usage of technologies like JavaServer Faces, Spring Framework and iBatis Data Mapper. Its modular architecture makes the application more error-resistant and flexible for any changes therefore easy to add new functionality. The common problem of sending input data through the GET method has also been solved.System is easy to install and use and the three –module composition puts work-division pattern into operation.This research was supported by the Technical University of Lodz Grant K-25/1/2007/Dz.St.
2. 中文翻译
基于JavaServer Faces技术的酒店预订系统本文介绍了基于网络的酒店预订系统如何利用JavaServer Faces技术和Spring框架访问系统通过Web浏览器为用户预定酒店客房。
一.引言酒店预订系统是一个支持特定类型功能的软件,往往通过Web浏览器作为承载手段。其主要特点为寻找并发送一个在登记过程中给定的地址的电子邮件来预订酒店相应的房间。
为了支持各酒店的组件定义的过程。酒店的组成部分是:房间,促销,包装,折扣,完成的通知等有关的事实,客人来到酒店,并收到钥匙,以及房间预订系统预订的过程。
二.JavaServer Faces图形用户界面是每一个计算机程序的关键部分,其承载与用户的交互的责任。这应该是灵活的应用程序的一部分,这意味着容易因用户需求产生更改,但是无疑的可以增加用户友的好性。令人遗憾的是,发展中的主要过程需要好的用户界面,通常造成的是开发人员的工作和时间泛滥,并且使整个开发过程涉及JavaServer Faces(JSF)这一领域的技术。这种整体的,基于构件的,软件开发人员所面临的长期问题的解决有一个具体的目标:使网站发展速度和复杂性掩盖了很多种类的技术。JSF技术更容易隐藏的是一个服务器的端用户对基于Java技术的Web应用程序界面框架。 JSF的技术的主要组成部分如下:
以UI组件为代表的并且管理他们,处理事件,执行服务器交互和数据转换,定义页面导航,支持国际和普及,并为所有这些功能提供扩可展性的技术支持。
两个JavaServer Pages定制标记库在JSP页面表示UI组件和布线组件的服务器端的用户界面与JSF技术在服务器上运行,并返回客户端(在这种情况下浏览器)由于基于Web的应用程序。如桌面浏览器,手机和PDA(多个客户端),JSF的已经以不同的方式展示了强大的组件体系结构。至于浏览器,因为它主要用于JSF,默认的渲染技术是HTML 4.0,尽管像其他的WML或SVG也有可能。JSF技术的最大优势之一是,它提供了一个干净的分离行为层和表示层和表示层的架构。
三.Spring框架Spring是一个轻量级,控制反转容器,它的创建解决了企业应用发展.Spring的复杂性使得可以使用普通的JavaBeans实现的东西,以前只可能与EJB的相关联。任何Java应用程序能够受益于Spring,简单来说,测试能力和松散的耦合。
当作为一个整体,这些模块提供的一切需要发展的企业来进行应用,虽然不一定要有充分的构建Spring框架的应用程序。人们可以从中挑选适合的模块,只有那些最好的应用,而忽略其他方面。这一战略是为酒店预订系统选择了自构框架的核心价值主张之一,并且是社会的选择方向,没有强迫任何一个适用于特定的架构,技术或方法,Spring还提供了与第三个数字一体化的便利机制 - 框架(也与JSF和iBatis)。
四.iBATIS DataMapper的APACHEiBatis的JDBC在apache - 数据库和Java基于数据映射器提供了简单和灵活的运输方式之间的关系,.Net或Ruby应用程序的数据。与流行的Hibernate库,iBatis的并没有直接配合,以表或列或字段,而是,它的存储过程或使用简单的XML描述符开始的开发,以达到对所需数据的应用。产生只有SQL语句的结果对象。 iBatis的框架几乎任何数据库可以映射到任何对象模型,是非常传统的设计,甚至坏designs.Simplicity宽容,是与其他框架相比iBatis的主要优点。
酒店预订系统,主要是建立基于JSF技术的同时辅助库,Spring与iBATIS的用户界面。应用程序体系结构,该系统的组成模块。每一层和适当的分隔与界面层。这种解决方案不仅能降低更多的错误发生可能性,也能产生更灵活的变化。表示层组成的图形用户在JSF支持bean对象技术编写的界面。它传达的是在那里,对用户输入数据的基础上,适当的决定是系统的核心业务的一部分,通过服务层。这也意味着为数据访问层明确了解的形式,而沟通需要通过数据访问接口是指数据访问层与数据输入数据映射层进行合作,并与数据库上进行数据交换的数据映射层负责通过JDBC数据库谈判要求所需的数据。这是一个在iBatis的数据映射层起着主要作用。
五.JSF的Spring集成概括地说,JSF的spring的整合使Spring管理类在JSF变量可见,就像spring为JSF管理beans到JavaServer Faces,任何Web框架综合集成一体化的具体步骤,必须配置forth.All需要做的事,是标准的J2EE servlet的ContextLoaderListener的web.xml部署文件。这个监听器初始化Spring的WebApplicationContext的,它包含所有在应用程序的业务类。在spring和JSF之间的整合只是第二个步骤是具体为JSF。课堂上使用的关键在这个过程中。要配置这个变量在faces - context.xml文件必须被编辑。开幕后<faces -config>标签<应用程式必须加上标签,并在它的<variable-resolver>指向Spring的DelegatingVariable分解必须付诸表决。这个例子的faces - config.xml文件。代表们的值查找到相关的JSF实现的默认解析器,然后到Spring的业务范围内的WebApplicationContext。这使得很容易注入一的JSF管理的bean依赖关系。
示例的faces-config.xml文件从酒店冗余接点JSF只建议应用的一个利用表格获取输入数据到应用服务器的方法是POST方法,虽然有时也有一种强烈的需要使用GET方法,但却不常用。在关于酒店系统使用GET方法是在有关用户帐户带来共同的方式来实施登记过程中使用GET方法是创建一个特殊的过滤器,可以操纵头或内容(或两者)的请求或付诸实施的GET方法在JavaServer Faces的,下面的算法的情况下,必须在过滤器下应用:
1.从请求参数。
2.建立适当的支持bean的相应的对象认为将继续使用。
3.存储在本届会议上支持bean的对象。
4.设置更改为当前JSF上下文。
5.创建视图和存储它在JSF上下文。
6.支持bean的方法执行。
六.JSF和具体配置文件酒店预订系统也基于Spring库,因此一些原始算法变化后成为了在适当过滤情况下的最适当方法。在doFilter方法的GET由于从上图可以看到过滤器的执行情况。额外的函数执行该算法被用于保持源代码的清晰和易于创造适当类从酒店预订系统的所有支持的类都应该至少有一个spring的财产托管bean。由于这个原因,有必要支持的bean对象后,设置创建此属性。
支持创建对象和设置spring托管bean的对象需要在Spring的WebApplicationContext的对象,它是在启动up.Set改为current.支持存储在会话Bean对象JSFes整个服务器初始化经营范围面临环境变得改变,因此它必须设置,以便与目前发生的所有修改。
JSF的设置作为当前的实际环境中之前将目前的情况下,它是不可或缺的攫取生命周期的对象。生命周期管理的特定JSF请求的整个生命周期处理。它负责执行的已经由JSF规范中定义的阶段,在指定的顺序,所有负责任的,除非另有活动,在每个阶段的执行导演发生。生命周期的一个实例是创建调用getLifecycle()的LifecycleFactory方法,为一个指定的生命周期标识符。因为这种情况是在多个并发请求共享的,它必须是在一个线程安全的方式实现。利用当前的生命周期随着ServletContext的对象,HttpServletReqest和HttpServletResponse对象的FacesContext中可以更新,成为最新的。
创建意见,并在JSF决策方面面临的实际context.After储存,新的看法应该是创建并添加到这个方面,但它是被可以做到“新”的运营商使用它,它反而要以间接方式进行。
创建新的观点和广泛的在工作面范围内的CreateView的()的方法,它构造的ViewHandler对象并返回一个新的UI ViewRoot实例资料和论据FacesContext中的viewId初始化。该效果参数始终是String变量代表(相对的/ WEB INF /目录)路径定义文件如图所示located。视图的定义是放置在普通的JSP文件,并在一个WEB INF文件目录测试支持bean方法的最后一步是位于子目录中的底层,以创造适当的支持bean的方法的实际执行对象的看法。这对于GET方法过滤的例子是基于在酒店预订系统,它作为一个工程的注册确认工具之一,所以最后,该方法负责确认应被调用(userId的)。
七.结论酒店预订系统,开发相应的设计与JavaServer Faces的一样,Spring框架和iBatis数据映射技术的使用现代编程应用的趋势。它的模块化结构使应用程序更多的错误性和灵活的任何变化,因此容易地添加新的功能。派遣通过GET方法还solved.System输入数据常见的问题是易于安装和使用,这三个模块组成放入operation.这个研究工作分工格局是由罗兹大学授予的K - 25/1/2007/Dz.St技术支持的。