基于JSP的网络订餐系统毕业设计论文.doc_第1页
基于JSP的网络订餐系统毕业设计论文.doc_第2页
基于JSP的网络订餐系统毕业设计论文.doc_第3页
基于JSP的网络订餐系统毕业设计论文.doc_第4页
基于JSP的网络订餐系统毕业设计论文.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 引言1.1 课题开发背景随着网络经济的不断发展,计算机网络已经成为人们社会生产和日常生活中不可缺少的部分。现在各行各业都在推行信息化,以提供效益和竞争力。俗话说,民以食为天,作为传统的餐饮服务行业也正面临着越来越激烈的竞争,如何才能更好在强手如林的餐饮市场上站稳脚跟并获得利润,电子商务的兴起为传统的餐饮服务行业提供了一条新的成功之路。挑战是现实的、机遇是潜在的,所以我们必须重组原有的商业格局,变革原有的商业模式来契合internet的发展以获取更大的效益。现在超市、商场、机关以及写字楼里的工作人员的就餐成为一个非常紧迫的问题。对于传统的餐饮业来说,其地位置至关重要。超市、写字楼、科技市场等人口集中的地方,都是开办快餐的最佳地点,但是那里的地价和房租都非常高,一般的经营者难以承受。更为重要的是,这些地方的餐饮业因为被其广泛的消费群体所吸引,餐馆林立,对于一般的经营者来说,在营业地点上已经没有插足之处了。而网上餐饮不会被地域因素而局限,由于它的成本低廉,在价格上往往是和传统餐饮抗衡的重要因素。现在电子商务已经成为网络交易的主流,人们已经慢慢习惯网上购物的方式,习惯在家里登录淘宝等购物网站挑选自己所喜爱的商品。同样,餐饮业也可以利用internet开发网上餐饮服务市场。1.2 课题现状及发展趋势现在我国使用的订餐方式还停留在电话订餐的层面上,但是不容置疑,电话订餐方便,随时打一个电话就可以预订餐品。但是这种方式也存在着一些问题,这些问题或多或少的影响着饭店的运营,进行网上订餐还是近两年来发展起来的新型订餐方法,人们通过上网,对餐品进行预订,这样不仅节约了时间,也为饭店的订餐管理工作提供了方便。随着越来越多的人接受了电子商务这种便捷、快速的交易形式,网上订餐的顺势而出很快受到了大家的欢迎。互联网的应用以普及千家万户,这为网络订餐提供了良好的发展空间。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的餐品,品尝不同风格的餐品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而且网络订餐服务的直观、有效、便捷等优点是传统的电话订餐业务无法比拟的。调查数据显示,北京白领更乐于选择网络订餐服务,网络订餐将是白领一族捕获餐店信息、进行订餐的发展趋势。1.3 课题开发意义在网络技术逐渐渗入社会生活各个层面的今天,传统的商业经营方式也面临着变革,而网上订餐则是一个很重要的方向。现在普遍使用的订餐方式是进行电话预订,这种预订方式简洁,方便,错误率也比较低,但是由此引发的一些不良现象也比较多,主要是订餐后出现饭店并没有将信息记录在案,这样的订餐就没有了意义,另外这种订餐方式只是进行电话的预约,很可能会出现订餐但是不履行订单也不进行订餐取消的现象,订餐人员对订购的餐桌信息不了解会进行相关信息的询问,这样就在一定程度上造成了时间的浪费,饭店人员会在同一天反复重复相同的信息,造成了人力资源的浪费。这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就成为了解决上述问题的主要途径。研究并开发这样的一款网上订餐系统就具有了重要的意义。2 系统分析2.1 系统功能需求分析网络订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。在具体的设计实现上我们围绕着两个方面的需求展开,即用户和管理员。该系统在功能上应达到如下需求:a) 从用户的角度。从用户的角度通过注册后可以浏览页面进行订餐,把自己喜欢的餐品添加到购物车中,并生成订单。同时可以通过页面进行餐品的查询,使用户更加方便的查询到自己需要的餐品。b) 从管理员的角度。从管理员的角度可以通过登入管理员的页面进行对用户的管理,添加和删除用户,并对用户的订单进行管理和餐品进行管理。2.2 可行性分析可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。2.2.1 技术可行性jsp可以创建和运用动态、交互的web服务器应用程序。同时,jsp具有向跨平台跨服务器的优点。sql server 2000是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。所以利用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所示:sql server服务器数据库驱动(jdbc)servletjavabean客户端http请求与响应视图控制器图3.1 系统结构设计3.2 系统层次及模块划分根据需求分析阶段对在线考试系统的功能分析,系统功能层次图如图3.2所示:在线订餐用户(前台)注 册 登 陆菜 品 查 询用 户 订 餐留 言 簿用 户 管 理订 单 管 理菜 品 管 理系 统 管 理管理(后台)图3.2 系统功能图本系统具有五大功能模块,分别为用户注册及登录模块,餐品查询模块,购物车模块,留言簿和系统管理员管理模块。用户注册登录模块分为三个子模块,分别为:用户注册子模块,用户登录子模块,用户查看修改注册信息模块。功能模块如图3.3所示:用户注册及登录用户修改信息用户登录用户注册图3.3 用户注册及登录模块餐品查询模块可以根据各个子模块实现:根据菜系查询、根据价格查询、根据类型查询、用户自行输入菜名查询等。功能模块如图3.4所示:餐品查询根据类型查询根据价格查询根据菜系查询其他词查询图3.4 餐品查询功能模块购物车模块可以分为添加餐品子模块,删除餐品子模块,生成订单子模块,查看订单明细模块。功能模块如图3.5所示:购物车生成餐品订单删除餐品添加餐品查看订单明细图3.5 购物车功能模块系统管理员管理模块可以分为用户管理子模块,订单管理子模块,餐品管理模块,系统管理模块。3.3 数据库设计数据库是一个管理系统中的重点,大多数商业应用程序的核心都是数据库。数据库设计的好坏将直接影响到系统的效率以及系统实现的效果。一个好的数据库的结构设计会减少数据库的存储量,可以提高数据库的存储效率等。sql server 2000是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。microsoft sql server 2000是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。sql server 2000系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在microsoft sql server 2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。sql server 2000系统具有强大的网上功能,可以在internet上发布数据库中的数据。在microsoft sql server 2000系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。对于数据库的需求主要体现在对数据库的提交信息、更新信息、删除信息、保存信息等。这些信息的存在都取决于各个功能模块的对信息的需求。通过对功能模块的具体操作,实现对数据库中信息的输入和输出。所以,针对各个功能模块的需求,设计如下的数据表和数据结构:用户表(users),用于存放注册用户的基本信息。该表记录着注册用户的详细资料,包括姓名、地址、联系电话,管理员通过查看用户的信息可以准确的将餐饮送到订餐用户的手中。该表共设9列,分别用户存储注册用户id、登录帐号、登陆密码、密码保护的问题和答案,以及注册用的联系方式、地址等信息,表的具体逻辑结构如表3.1所示:表3.1 用户表(users)列名数据类型长度约束条件描述usersidusersnameuserspassuserspassquestionuserspassreplyuserstruenameusersaddressusersphoneuserse_mailintvarcharvarcharvarcharvarcharvarcharvarcharvarcharvarchar44040404040100100100primary keynot nullnot null-not nullnot nullnot nullnot null注册用户id用户登录帐号用户登录密码密码保护的问题密码保护的答案用户的真实姓名用户的联系地址用户的联系电话用户的电子邮箱管理员表(admin),存放管理员的基本信息。其中adminid列用于存放该管理员的用户id,由系统标识自动增加;adminname列用于存放管理员的登录用户名;adminpass列用于存放管理员的登录密码。admin表的数据的具体逻辑结构如表3.2所示:表3.3.2 管理员表(admin)列名数据类型长度约束条件描述adminidadminnameadminpassintvarcharvarchar44040primary keynot nullnot null管理员id管理员登录帐号管理员登录密码餐品表(goods),存放餐厅所以的餐品的信息,记载着某个餐品菜名、配料、口味、价格等,前台通过对该表的查询引用,能显示出改餐品的详细信息给用户,方便其订购使用。其中goodsid列、goodsname列、goodsmaterial列、goodspackage列、goodslanguage列、goodsprice列、goodshabitus列、sortname列分别用来存放餐品的id,菜名、所属菜系、口味、做菜时的配料、订购价格、状态及餐品的类型。餐品表数据的具体逻辑结构如表3.3所示:表3.3 餐品表(goods)列名数据类型长度约束条件描述goodsidgoodsnamegoodsmaterialgoodspackaggoodslanguagegoodspricegoodshabitussortnameintvarcharvarcharvarcharvarcharfloatvarcharvarchar440200200200810040primary keynot nullnot nullnot nullnot nullnot nullnot nullnot null餐品id菜的名称该餐品所属菜系该餐品的口味餐品的主辅配料销售价格是否上架所属类型餐品类别表(sort),主要是用来存放餐品的类型的,以方便在添加新的餐品时好调用。该表非常简洁只有一个sortid列和一个sortname列,分别存放餐品的类别id和所属类型。具体的数据的逻辑结构如表3.4所示:表3.4 餐品类别表(sort)列名数据类型长度约束条件描述sortid sortname intvarchar440primary keynot null餐品类别id餐品类型订单表(orders),该表主要是用来存放用户所生成的订,记录订单的id,生成该订单的用户名以便明确是那个用户的订单,还有就是订单的总值和订单的生成日期,它们分别对应的列表名为ordersid,usersname,ordersprice,ordersdatetime。该表主要是方便管理员查看订单的大概情况。具体的数据的逻辑结构如表3.5所示:表3.5 订单表(orders)列名数据类型长度约束条件描述ordersidusersnameorderspriceordersdatetimeintvarcharvarcharvarchar4404040primary keynot nullnot nullnot null订单id订单中的用户名该订单的总价钱订单的生成时间日期订单明细表(ordersdetails),这个表是订单表(orders)的一个补充,订单表(orders)只是简单的记录存放了订单中的用户名、总价钱和生成日期,而订单明细表(ordersdetails)则详细的记录了订单中的餐品名称、单价及数量,这是一个订单中重要的一部分。该表设四个列:ordersid、goodsname、goodsprice、goodscount,分别存放订单的id、订单中的餐品名称、餐品的单价、该餐品的订购数量。具体的数据的逻辑结构如表3.6所示:表3.3.6 订单明细表(ordersdetails)列名数据类型长度约束条件描述ordersidgoodsnamegoodspricegoodscountintvarcharvarcharint440404primary keynot nullnot nullnot null订单id订单中的餐品名称餐品的单价数量3.3 相关技术3.3.1 jsp技术jsp(java server pages) 技术是一个纯java平台的技术,它主要用来产生动态网页内容。在传统的网页html文件中加入java程序片段和jsp标记,就构成了jsp网页。web服务器接收到访问jsp网页的请求时,首先执行其中的程序片段,然后将执行结果以html格式返回给客户。jsp是基于java servlet以及整个java体系的web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。a) 将内容的生成和显示进行分离。使用jsp技术,web页面开发人员可以使用html或者xml标识来设计和格式化最终页面。使用jsp标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一道菜的价格。生成内容的逻辑部分被封装在javabeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在beans中,那么其他人,如web管理人员和页面设计者,在编辑和使用jsp页面的时候,将不会影响到内容的生成。在服务器端,jsp引擎解释jsp标识和小脚本,生成客户端请求的内容,例如,通过访问javabeans组件,使用jdbc技术访问数据库或者其他文件,并且将结果以html(或者xml)页面的形式发送回浏览器。这将有助于作者保护自己的代码,并且又保证任何基于html的web浏览器的完全可用性。b) 强调可重用的组件。绝大多数jsp页面依赖于可重用的,跨平台的组件(javabeans或者enterprise javabeans tm组件)来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。c) 采用标识简化页面开发。web页面开发人员不会都是熟悉脚本语言的编程人员。java server page技术封装了许多功能,这些功能是容易使用的、同时与jsp相关的xml标识中进行动态内容的生成时需要的。通过开发定制化标识库,jsp技术是可扩展的。今后,第三方开发人员和其他人员可以将常用的功能创建到自己的标识库。这使得web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。jsp技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。作为采用java技术家族的一部分,以及java 2(企业版体系结构)的一个组成部分,jsp技术能够支持高度复杂的基于web的应用开发。由于jsp页面的内置脚本语言是基于java编程语言的,并且所有的jsp页面都能被编译成为java servlet,jsp页面就具有java技术的所有好处,包括健壮的存储管理和安全性。作为java平台的一部分,jsp拥有java编程语言“一次编写,各处运行”的特点。随着越来越多的厂家将对jsp的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。当与java 2平台,企业版和enterprise javabean技术整合时,jsp页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于web的应用是必需的。3.3.2 javabean组件技术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架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。再有是成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在用管理软件,只需安装在linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的linux操作系统快速发展起来,linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。4 详细设计在前面的总体设计中,已将系统划分为多个模块,现在需要的是确定每个功能模块的具体实现。在本章内,将详细说明系统功能模块的具体实现。系统主要使用了jsp、javascript、java、html语言等综合处理页面信息的显示和各个功能模块功能的设计,以及通过对数据库的操作完成整个系统的设计。4.1 用户模块用户模块既是前台模块,主要是面向顾客设计使用的,也可以称为顾客模块。顾客模块的只要功能是浏览、搜索查询、订餐,而用户需要订餐的话必须要进行注册登录。最终实现顾客订餐的目的。订餐的流程如图4.1所示:noyesyesyesno开始结束用户登录选择餐品通过验证加入购物车继续订餐查看购物车删除餐品生成订单如4.1 用户订餐流程图yesyesyesno结束用户登录选择餐品通过验证加入购物车继续订餐查看购物车删除餐品生成订单4.1.1 首页设计首页是当顾客访问时展现给顾客的第一页面,一个好的首页能给顾客带来好的体验。首页的设计应该给顾客展示更多的信息和快捷方便的操作。本订餐系统的基本框架如图4.2所示:促销活动banner导航栏登录快速查询链接餐品展示商家logo图4.2 首页基本框架首页的左上角是logo图,商家可以挂上自己的商标;logo的右侧是促销活动的相关banner链接;这可以方便顾客第一眼发现了解促销活动的信息,在导航栏顾客可以快速的留言,查看个人注册信息;左侧栏的设计可以帮助顾客快速进行登录以及通过分类菜单查询链接快速的找到符合顾客要求的餐品的归类;而中间的大区块则向顾客展示最新上架的餐品。在餐品展示区块通过goodsbean类中的getallgoods()方法获取所有餐品id,然后通过details.jsp返回餐品的菜名、图片、价格等信息,相关代码如下所示:a href = tourist/details.jsp?goodsid = target =_selfimg height = 100 src = width=100 border=1a href = tourist/details.jsp?goodsid = target=_selfa href = tourist/details.jsp?goodsid = target =_self价格:元a href = tourist/details.jsp?goodsid= target = _self4.1.2 用户注册功能通过页面register.jsp来实现用户注册的界面,用户填写表单提交后通过内置的javascript代码进行前台验证,判断用户输入的注册信息是否正确,如两次的密码是否相同,电话号码格式是否对,如果输入错误将返回相应的错误信息。通过javascript的验证可以减少不必要的网络信息传递,减轻服务器负担,提高效率。验证通过后将用户提交的注册信息提交到adduserinfo.jsp页面。在adduserinfo.jsp页面中引用userbean这个javabean类,并调用adduserinfo()方法将用户的注册信息存储到数据库中。关键代码如下:preparedstatement stm=con.preparestatement(insert into users values(?,?,?,?,?,?,?,?,?);stm.setstring(1,user.getusersname();stm.setstring(2,user.getuserspass();stm.setstring(3,user.getusersrepass();stm.setstring(4,user.getuserspassquestion();stm.setstring(5,user.getuserspassreply();stm.setstring(6,user.getuserstruename();stm.setstring(7,user.getusersaddress();stm.setstring(8,user.getusersphone();stm.setstring(9,user.getuserse_mail();4.1.3 用户登录功能顾客订餐需要登录系统,所以在首页中集成了用户登录模块,方便登录。当用户填用户名和密码提交登录时,把表单内容提交到checklogin.jsp页面验证用户的登录信息。在checklogin.jsp引入表示用户的实体javabean类userclass和封装了验证用户登录方法的逻辑javabean类userbean,然后调用验证用户身份的checkuserinfo()方法,根据用户的信息在主页中显示其登录成功的信息。如果登录不成功则返回密码错误的消息。关键代码如下:preparedstatement stat=con.preparestatement(select * from users where usersname=? and userspass=?);stat.setstring(1,user.getusersname();stat.setstring(2,user.getuserspass();resultset result=stat.executequery();if(result.next() flag=true;result.close();stat.close();用户成功登录后可以在用户中心查看自己的注册信息,该功能通过checkmyinfo.jsp页面来显示。4.1.4 餐品查询功能搜索功能可以说是一个网站必须功能,这可以为顾客提供更为方便快捷的服务,顾客可以快速的找到自己想要下订的餐品。顾客可以按餐品的类型、价格、菜系或者其他的关键词查询想需要的餐品饮料,然后分别提交到goodstype.jsp、goodsprices.jsp、goodsseries.jsp页面进行处理查询,要是想通过通过其他的关键词查询可以通过lowerselect.jsp快速查询,或者通过heightselect.jsp高级查询。在这些查询的页面中首先接收超级链接中参数,也就是用户要查询的关键词,并利用.getbytes(iso-8859-1)方法将其转换成中文字符,然后引入表示餐品的实体javabean类goodsclass和封装了对餐品信息进行操作的逻辑javabean类goodsbean,在页面中调用getallpagebysort()方法根据用户提交的类型进行查询。关键代码实现如下:goodsbean是用来封装对餐品进行各种逻辑操作的javabean类,通过goodsbean接收参数用sql查询语句select查询匹配的结果,然后返回都相应的页面中去,显示给查询的顾客。4.1.5 购物车功能购物车的主要功能是把顾客暂时想要订购的餐品存放起来,最后确定生成订单。当然,顾客要想使用购物车就要先登录会员,如果没有登录的话则跳到错误页面。顾客在网站中看到喜爱的餐品时,通过点击相应的链接,然后通过details.jsp接收餐品的id,然后getgoodsinfo()方法根据餐品的id查询餐品的详细信息,并返回到页面上。显示餐品详细信息的核心代码如下: 顾客在找到中意的餐品可以点餐品详细信息页面的“订购”按钮,将其添加到购物车中去。点击“订购”按钮后向cart.jsp传递添加信息。该页面通过引入表示购物车的实体javabean类cart和封装了对商品信息进行操作的逻辑javabean类goodsbean,然后通过javabean中定义的逻辑方法对购物车中的商品进行添加删除操作。cart是用来封装对购物车中的餐品进行添加、删除、更新和生成订单等操作的javabean类。当用户订餐过程结束后,可以调用其中的calprice()方法计算本次购买的商品的总价格,并在orderinfo.jsp页面中调用genorder()方法生成订单。生成订单的主要核心代码如下: 4.1.6 用户留言功能在用户留言模块任何用户都可以在这里给管理员留言。该功能通过language.jsp页面实现。在language.jsp页面引入表示留言的实体的javabean类leavelanguageclass和封装了对留言进行操作的逻辑javabean类leavelanguagebean,然后调用其中的addlanguage()方法将用户的留言信息存储到数据库中。leavelanguagebean是用来封装对用户留言进行添加、删除和更新操作的javabean类,是用户留言模块的核心逻辑类。4.2 管理员模块管理员模块也就是系统的后台,主要面向管理员设计。系统管理员登录后台之后,可以进行餐品管理、订单管理、用户管理、网站系统管理员管理,从而维护系统的核心数据信息。4.2.1 管理员登录模块管理员登录页面是login.jsp,用户登录后方可进行一系列的管理操作。管理员填好登录帐号密码点击“登录”后,将表单提交到login1.jsp验证密码的正确。login1.jsp页面引入表示管理员的实体javabean类adminclass和封装了管理员业务操作的逻辑javabean类adminbean,然后调用其中的checkadmininfo()方法对用户输入的管理员登录信息进行验证。验证管理员登录信息的核心代码如下:在页面中用session.setmaxinactiveinterval(30*60)将管理员登录后的cookies保存30分钟。4.2.2 用户管理功能在管理员登录系统后台就可以对用户管理了。在用户管理功能菜单中可以查找查看用户的信息,也可以直接添加用户。在后台直接添加用户通过adduserinfo.jsp页面,这个功能和在前台顾客自己注册是一样的。同样在页面中引用userbean这个javabean类,并调用adduserinfo()方法将用户的注册信息存储到数据库中。查看查找已注册用户的信息。直接点击查看所有注册用户,通过viewallusers.jsp页面显示所有注册用户的信息。在viewallusers.jsp引入表示用户的实体javabean类userclass和逻辑javabean类userbean,然后调用getalluserinfo()执行sql语句对数据库查询,获取所以注册用户的信息并返回。查看所有注册用户端jsp核心代码如下:collection users=userbean.getalluserinfo();iterator it=users.iterator();while(it.hasnext() userclass user=(userclass)it.next();out.println(user.getusersid();out.println(user.getusersname();out.println(user.getuserstruename();out.println(user.getusersaddress();out.println(user.getusersphone();out.println(user.getuserse_mail();通过输入用户的id或者用户名,分别把关键词信息提交到viewusersbyuserid.jsp,viewusersbyusername.jsp筛选出准确的注册用户信息。这两个页面中都引用userbean类,并调用其中的getuserbyuserid()、getuserbyusername()方法执行sql语句读取数据库筛选用户。4.2.3 订单信息管理功能订单管理信息管理可以说是比较重要的部分,管理员通过查看订单可以知道顾客所要订的餐品,能及时的作出处理。点击查看所有订单链接viewallorders.jsp,显示出所有订单的信息。在viewallorders.jsp页面中引入了购物车的实体javabean类cart,在页面中调用显示所有订单的getorders()方法,getorders()方法sql语句的select查询数据库返回所有订单的详细信息。显示所有订单的核心jsp代码如下:同时管理员可以通过viewordersbyorderid.jsp,viewordersbyusername.jsp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论