基于jsp的网络订餐系统.docx
- 文档编号:26633813
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:35
- 大小:530.08KB
基于jsp的网络订餐系统.docx
《基于jsp的网络订餐系统.docx》由会员分享,可在线阅读,更多相关《基于jsp的网络订餐系统.docx(35页珍藏版)》请在冰豆网上搜索。
基于jsp的网络订餐系统
1引言
1.1课题开发背景
随着网络经济的不断发展,计算机网络已经成为人们社会生产和日常生活中不可缺少的部分。
现在各行各业都在推行信息化,以提供效益和竞争力。
俗话说,民以食为天,作为传统的餐饮服务行业也正面临着越来越激烈的竞争,如何才能更好在强手如林的餐饮市场上站稳脚跟并获得利润,电子商务的兴起为传统的餐饮服务行业提供了一条新的成功之路。
挑战是现实的、机遇是潜在的,所以我们必须重组原有的商业格局,变革原有的商业模式来契合Internet的发展以获取更大的效益。
现在超市、商场、机关以及写字楼里的工作人员的就餐成为一个非常紧迫的问题。
对于传统的餐饮业来说,其地位置至关重要。
超市、写字楼、科技市场等人口集中的地方,都是开办快餐的最佳地点,但是那里的地价和房租都非常高,一般的经营者难以承受。
更为重要的是,这些地方的餐饮业因为被其广泛的消费群体所吸引,餐馆林立,对于一般的经营者来说,在营业地点上已经没有插足之处了。
而网上餐饮不会被地域因素而局限,由于它的成本低廉,在价格上往往是和传统餐饮抗衡的重要因素。
现在电子商务已经成为网络交易的主流,人们已经慢慢习惯网上购物的方式,习惯在家里登录淘宝等购物网站挑选自己所喜爱的商品。
同样,餐饮业也可以利用Internet开发网上餐饮服务市场。
1.2课题现状及发展趋势
现在我国使用的订餐方式还停留在电话订餐的层面上,但是不容置疑,电话订餐方便,随时打一个电话就可以预订餐品。
但是这种方式也存在着一些问题,这些问题或多或少的影响着饭店的运营,进行网上订餐还是近两年来发展起来的新型订餐方法,人们通过上网,对餐品进行预订,这样不仅节约了时间,也为饭店的订餐管理工作提供了方便。
随着越来越多的人接受了电子商务这种便捷、快速的交易形式,网上订餐的顺势而出很快受到了大家的欢迎。
互联网的应用以普及千家万户,这为网络订餐提供了良好的发展空间。
特别在公司,企业内部,团体订餐已经成为了趋势。
同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的餐品,品尝不同风格的餐品,网络订餐业务在中国有着极大的发展空间以及良好的背景。
而且网络订餐服务的直观、有效、便捷等优点是传统的电话订餐业务无法比拟的。
调查数据显示,北京白领更乐于选择网络订餐服务,网络订餐将是白领一族捕获餐店信息、进行订餐的发展趋势。
1.3课题开发意义
在网络技术逐渐渗入社会生活各个层面的今天,传统的商业经营方式也面临着变革,而网上订餐则是一个很重要的方向。
现在普遍使用的订餐方式是进行电话预订,这种预订方式简洁,方便,错误率也比较低,但是由此引发的一些不良现象也比较多,主要是订餐后出现饭店并没有将信息记录在案,这样的订餐就没有了意义,另外这种订餐方式只是进行电话的预约,很可能会出现订餐但是不履行订单也不进行订餐取消的现象,订餐人员对订购的餐桌信息不了解会进行相关信息的询问,这样就在一定程度上造成了时间的浪费,饭店人员会在同一天反复重复相同的信息,造成了人力资源的浪费。
这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就成为了解决上述问题的主要途径。
研究并开发这样的一款网上订餐系统就具有了重要的意义。
2系统分析
2.1系统功能需求分析
网络订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。
在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。
在具体的设计实现上我们围绕着两个方面的需求展开,即用户和管理员。
该系统在功能上应达到如下需求:
a)从用户的角度。
从用户的角度通过注册后可以浏览页面进行订餐,把自己喜欢的餐品添加到购物车中,并生成订单。
同时可以通过页面进行餐品的查询,使用户更加方便的查询到自己需要的餐品。
b)从管理员的角度。
从管理员的角度可以通过登入管理员的页面进行对用户的管理,添加和删除用户,并对用户的订单进行管理和餐品进行管理。
2.2可行性分析
可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。
2.2.1技术可行性
JSP可以创建和运用动态、交互的WEB服务器应用程序。
同时,JSP具有向跨平台跨服务器的优点。
SQLServer2000是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。
所以利用JSP和SQL数据库开发设计网络订餐系统是可行的。
2.2.2操作可行性
现在是信息社会,绝大多数的人都已经接触互联网,而且很多人有在网上购物的经验。
网络订餐系统无疑也是电子商务购物网站的一类,所以对于稍有点网络经验的人来说可以很轻松的应用本系统实现在网上订餐。
而对于系统的管理员也就是餐厅的老板也不需要了解过多电脑技术就可以应用本系统。
他们只需要登录到后台后,在简单易懂的操作菜单中进行选择,就可以方便的查看订单、管理餐品等操作。
还有就是系统是基于B/S(Browser/Server)结构开发的,即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现的,所以订餐用户无需安装多余的客户端软件,所有的客户端只是浏览器,根本不需要做任何维护。
大大的减少了维护工作量。
在服务器方便只要安排配置好之后在适时做些维护,这也降低了开发成本。
2.2.3经济可行性
由于本订餐系统操作简单方便,不需要投入额外的设备和人员的培训费用。
系统的运行环境的软硬件要求都都不是很高,只要一台能连接互联网的计算机就可以运行操作,再加上一个域名就可以给广大需要订餐的顾客服务了。
所以在经济方面是可以执行的。
3总体设计
总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。
因此,总体设计阶段主要由两个阶段组成。
首先进行系统设计,然后进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。
3.1结构设计
系统采用JSP设计,通过交互的WEB应用技术的学习,提高对B/S系统的应用能力。
在设计上将本系统的功能模块化,便于开发。
这不仅使系统的结构清晰、层次明了,还提高了代码的重用率,减轻了开发者的负担。
在设计上采用3层体系结构,将表现层、控制层和数据库操作分开,客户端通过统一的接口向控制层发送请求,控制层再从数据库操作中获得相关的数据,通过视图显示出来。
这在一定程度上增加了数据库的安全性、系统的可移植性。
根据以上设计思想系统总体结构如图3.1所示:
图3.1系统结构设计
3.2系统层次及模块划分
根据需求分析阶段对在线考试系统的功能分析,系统功能层次图如图3.2所示:
本系统具有五大功能模块,分别为用户注册及登录模块,餐品查询模块,购物车模块,留言簿和系统管理员管理模块。
用户注册登录模块分为三个子模块,分别为:
用户注册子模块,用户登录子模块,用户查看修改注册信息模块。
功能模块如图3.3所示:
图3.3用户注册及登录模块
餐品查询模块可以根据各个子模块实现:
根据菜系查询、根据价格查询、根据类型查询、用户自行输入菜名查询等。
功能模块如图3.4所示:
图3.4餐品查询功能模块
购物车模块可以分为添加餐品子模块,删除餐品子模块,生成订单子模块,查看订单明细模块。
功能模块如图3.5所示:
图3.5购物车功能模块
系统管理员管理模块可以分为用户管理子模块,订单管理子模块,餐品管理模块,系统管理模块。
3.3数据库设计
数据库是一个管理系统中的重点,大多数商业应用程序的核心都是数据库。
数据库设计的好坏将直接影响到系统的效率以及系统实现的效果。
一个好的数据库的结构设计会减少数据库的存储量,可以提高数据库的存储效率等。
SQLServer2000是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。
MicrosoftSQLServer2000是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。
SQLServer2000系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。
另外,用户数据都是非常重要的和保密的,这些数据存储在MicrosoftSQLServer2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。
XX的用户既不能执行相应的操作,也不能访问数据库中的相应数据。
SQLServer2000系统具有强大的网上功能,可以在Internet上发布数据库中的数据。
在MicrosoftSQLServer2000系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。
对于数据库的需求主要体现在对数据库的提交信息、更新信息、删除信息、保存信息等。
这些信息的存在都取决于各个功能模块的对信息的需求。
通过对功能模块的具体操作,实现对数据库中信息的输入和输出。
所以,针对各个功能模块的需求,设计如下的数据表和数据结构:
用户表(users),用于存放注册用户的基本信息。
该表记录着注册用户的详细资料,包括姓名、地址、联系电话,管理员通过查看用户的信息可以准确的将餐饮送到订餐用户的手中。
该表共设9列,分别用户存储注册用户ID、登录帐号、登陆密码、密码保护的问题和答案,以及注册用的联系方式、地址等信息,表的具体逻辑结构如表3.1所示:
表3.1用户表(users)
列名
数据类型
长度
约束条件
描述
usersId
usersName
usersPass
usersPassQuestion
usersPassReply
usersTrueName
usersAddress
usersPhone
usersE_mail
int
varchar
varchar
varchar
varchar
varchar
varchar
varchar
varchar
4
40
40
40
40
40
100
100
100
PrimaryKey
NOTNULL
NOTNULL
---
---
NOTNULL
NOTNULL
NOTNULL
NOTNULL
注册用户ID
用户登录帐号
用户登录密码
密码保护的问题
密码保护的答案
用户的真实姓名
用户的联系地址
用户的联系电话
用户的电子邮箱
管理员表(admin),存放管理员的基本信息。
其中adminId列用于存放该管理员的用户ID,由系统标识自动增加;adminName列用于存放管理员的登录用户名;adminPass列用于存放管理员的登录密码。
admin表的数据的具体逻辑结构如表3.2所示:
表3.3.2管理员表(admin)
列名
数据类型
长度
约束条件
描述
adminId
adminName
adminPass
int
varchar
varchar
4
40
40
PrimaryKey
NOTNULL
NOTNULL
管理员ID
管理员登录帐号
管理员登录密码
餐品表(goods),存放餐厅所以的餐品的信息,记载着某个餐品菜名、配料、口味、价格等,前台通过对该表的查询引用,能显示出改餐品的详细信息给用户,方便其订购使用。
其中goodsId列、goodsName列、goodsmaterial列、goodsPackage列、goodsLanguage列、goodsPrice列、goodsHabitus列、sortName列分别用来存放餐品的ID,菜名、所属菜系、口味、做菜时的配料、订购价格、状态及餐品的类型。
餐品表数据的具体逻辑结构如表3.3所示:
表3.3餐品表(goods)
列名
数据类型
长度
约束条件
描述
goodsId
goodsName
goodsmaterial
goodsPackag
goodsLanguage
goodsPrice
goodsHabitus
sortName
int
varchar
varchar
varchar
varchar
float
varchar
varchar
4
40
200
200
200
8
100
40
PrimaryKey
NOTNULL
NOTNULL
NOTNULL
NOTNULL
NOTNULL
NOTNULL
NOTNULL
餐品ID
菜的名称
该餐品所属菜系
该餐品的口味
餐品的主辅配料
销售价格
是否上架
所属类型
餐品类别表(sort),主要是用来存放餐品的类型的,以方便在添加新的餐品时好调用。
该表非常简洁只有一个sortId列和一个sortName列,分别存放餐品的类别ID和所属类型。
具体的数据的逻辑结构如表3.4所示:
表3.4餐品类别表(sort)
列名
数据类型
长度
约束条件
描述
sortId
sortName
int
varchar
4
40
PrimaryKey
NOTNULL
餐品类别ID
餐品类型
订单表(orders),该表主要是用来存放用户所生成的订,记录订单的ID,生成该订单的用户名以便明确是那个用户的订单,还有就是订单的总值和订单的生成日期,它们分别对应的列表名为ordersId,usersName,ordersPrice,ordersDatetime。
该表主要是方便管理员查看订单的大概情况。
具体的数据的逻辑结构如表3.5所示:
表3.5订单表(orders)
列名
数据类型
长度
约束条件
描述
ordersId
usersName
ordersPrice
ordersDatetime
int
varchar
varchar
varchar
4
40
40
40
PrimaryKey
NOTNULL
NOTNULL
NOTNULL
订单ID
订单中的用户名
该订单的总价钱
订单的生成时间日期
订单明细表(ordersDetails),这个表是订单表(orders)的一个补充,订单表(orders)只是简单的记录存放了订单中的用户名、总价钱和生成日期,而订单明细表(ordersDetails)则详细的记录了订单中的餐品名称、单价及数量,这是一个订单中重要的一部分。
该表设四个列:
ordersId、goodsName、goodsPrice、goodsCount,分别存放订单的ID、订单中的餐品名称、餐品的单价、该餐品的订购数量。
具体的数据的逻辑结构如表3.6所示:
表3.3.6订单明细表(ordersDetails)
列名
数据类型
长度
约束条件
描述
ordersId
goodsName
goodsPrice
goodsCount
int
varchar
varchar
int
4
40
40
4
PrimaryKey
NOTNULL
NOTNULL
NOTNULL
订单ID
订单中的餐品名称
餐品的单价
数量
3.3相关技术
3.3.1JSP技术
JSP(JavaServerPages)技术是一个纯Java平台的技术,它主要用来产生动态网页内容。
在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。
Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。
a)将内容的生成和显示进行分离。
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一道菜的价格。
生成内容的逻辑部分被封装在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。
如果核心逻辑被封装在Beans中,那么其他人,如Web管理人员和页面设计者,在编辑和使用JSP页面的时候,将不会影响到内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成客户端请求的内容,例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者其他文件,并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这将有助于作者保护自己的代码,并且又保证任何基于HTML的Web浏览器的完全可用性。
b)强调可重用的组件。
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理问题。
开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。
c)采用标识简化页面开发。
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JavaServerPage技术封装了许多功能,这些功能是容易使用的、同时与JSP相关的XML标识中进行动态内容的生成时需要的。
通过开发定制化标识库,JSP技术是可扩展的。
今后,第三方开发人员和其他人员可以将常用的功能创建到自己的标识库。
这使得Web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。
作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用开发。
由于JSP页面的内置脚本语言是基于Java编程语言的,并且所有的JSP页面都能被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
随着越来越多的厂家将对JSP的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。
当与Java2平台,企业版和EnterpriseJavaBean技术整合时,JSP页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于Web的应用是必需的。
3.3.2javaBean组件技术
JavaBean是描述Java的软件组件模型,JavaBean就是一个Java类,是一种Java语言写成的可重用软件组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的bean可以询问和集成。
非可视化的JavaBean与JSP结合起来使用,在JSP程序中常用JavaBean来封装事务逻辑(功能实现部分)如数据运算、数据处理、数据库操作等,然后在JSP
网页中调用,而JSP文本着重的是网页界面设计,实现了业务逻辑和前台显示部分的分离,这样不仅使JSP网页变得清晰,而且可以节省软件开发时间和降低以后维护的难度,使系统变得健壮和灵活。
JSP有两中开发模式JSP+JavaBeans和JSP+Servlet+JavaBeans。
两种模型的整体结构都比较清晰,易于实现。
它们的基本思想都是实现表示层、事务逻辑层和数据层的分离。
这样的分层设计便于系统的维护和修改。
两种模型的主要区别表现在:
a)处理流程的主控部分不同。
JSP和JavaBean模型利用JSP作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。
JSP和模型利用Servlet作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。
b)实现表示层、事务逻辑层和数据层的分离程度不同。
JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更好的分离效果。
当事务逻辑比较复杂、分支较多或需要涉及多个JavaBean组件时,JSP和JavaBean模型常常会导致JSP文件中嵌入大量的脚本或Java代码。
特别是大型项目开发中,由于页面设计和逻辑处理分别由不同的专业人员承担,如果JSP有相当一部分处理逻辑和页面描述混在一起,这就有可能引起分工不明确,不利于两个部分的独立开发和维护,影响项目的施工和管理。
在JSP和JavaBean+Servlet模型中,由Servlet处理HTTP请求,JavaBean承担事务逻辑处理,JSP仅负责生成网页的工作,所以表现层的混合问题比较轻,适合于不同专业的专业人员独立开发Web项目中的各层功能。
c)适应于动态交互处理的需求不同。
当事务逻辑比较负责、分支较多或需要涉及很多JavaBean组件时,由于JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更清晰的页面表现、更明确的开发模块的划分,所以使用JSP和JavaBean+Servlet模型比较适合。
然而,JSP和JavaBean+Servlet模型需要编写Servlet程序,Servlet程序需要的工具是Java集成开发环境,编程工作量比较大。
对于简单的交互处理,利用JSP和JavaBean模型,JSP主要是使用HTML工具开发,然后再插入少量的Java代码就可以实现动态交互。
在这种情况下,使用JSP和JavaBean模型更加方便快捷。
对于本订餐系统属于是小型的应用,只需要JSP+JavaBean模型就可以实现而不需要应用复杂的JSP+JavaBean+Servlet模型。
3.4系统开发模式
首先是B/S模式简介本系统采用B/S模式。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同件更是方便、快捷、高效。
B/S模式的优势是维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 jsp 网络 系统