jsp10基于web的餐厅外卖系统(jsp+servlet+mysql)_第1页
jsp10基于web的餐厅外卖系统(jsp+servlet+mysql)_第2页
jsp10基于web的餐厅外卖系统(jsp+servlet+mysql)_第3页
jsp10基于web的餐厅外卖系统(jsp+servlet+mysql)_第4页
jsp10基于web的餐厅外卖系统(jsp+servlet+mysql)_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

目录29431绪论 绪论1.1课题背景及意义1.1.1课题背景通过网络的便利改变了我国各行各业的管理模式,从上世纪九零年代开始,利用网络来替代传统的信息管理模式已经逐渐实施。在实施的初期,由于网络普及率比较低,互联网的相关法律法规也是不完善和部分开发技术并不成熟,所以导致互联网的发展受到了阻碍,当互联网进入到二十一世纪之后,通过经济的快速发展,使得我国的互联网遇到的问题逐一解决,最终进入到了互联网时代,国内各大机构都加入到了电子信息化的管理模式中来。以往的餐厅外卖相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,由于计算机技术的发展逐渐成熟,成为了人们日常生活中不可缺少的一部分,因为计算机的功能强大,所以在我国各行各业都在通过计算机技术和网络的便利来改变管理模式。与传统的餐厅外卖管理方式相比较,该系统的网络沟通、信息储存方面都是传统方式无法媲美的。例如计算机存储量非常大、计算检索速度快、安全性高、成本低等特性。并且能够帮助人们提高工作效率,延伸至服务水平也会有好的收获,有了网络,餐厅外卖的各方面的管理更加科学和系统,更加规范和简便。1.1.2课题意义随着计算机技术的飞速发展,计算机在餐厅外卖管理中应用的普及,利用计算机实现外卖管理势在必行。餐厅外卖系统可以使外卖与管理工作变得规范化、系统化和程序化,避免了工作的随意性,提高了外卖管理的速度和准确性,可以及时准确地查询和修改订单与外卖情况。其次,强大的供应链系统,可以允许餐厅进行大量管理外卖信息,大大降低了采购成本。由于其经营成本低,资金流动周期短,信息更新快,使运餐厅可以在竞争激烈的市场上灵活地应对自如。餐厅外卖系统的实施从各个方面来讲,都促进了社会的福利,所以是有意义的,值得去尝试的。

1.2国内外研究现状1.2.1国内研究现状由于智能化设备和无线网络的快速发展,智能设备已经成为了人们生活中必不可少的一部分,在很多领域都有涉及。由于只能信息管理技术的快速发展以及其它技术的相结合,使得很多信息技术的开发带来了极大的便利。基于智能设备的信息管理系统与系统,已经非常受欢迎,并且在计算平台中占有越来越大的份额。经过近几年的不断发展,全国各地的餐厅外卖已经逐渐推出网络、电话等类型的外卖信息管理,在国家大力支持,加上用户消费方式的不断改变,在相关部门的指引下,已经出现了各式各样的餐厅外卖信息管理,这些系统都为用户提供了便利的服务。但是在经济利益的驱使下,很多公司加入了改革之路,建立了餐厅外卖管理系统,但是这些系统大多都是收费使用,主动服务于用户,给用户提供便利服务的系统少之又少。以Web基础的操作平台,由于其开发与操作的便利性,受到了众多人的青睐。因为人们生活快节奏到的生活,人们压力不断加大,人们更想要一个可以尽快完成餐厅外卖信息管理的平台,可以减少用户管理时无效的信息处理,同时也可以让城市便捷高效的完成餐厅外卖信息管理工作,缓解资源紧张的问题。因此,以Web为基础,开发的餐厅外卖系统,在满足多样化操作需求的前提下,让计算机服务被越来越多人接受。1.2.1国外研究现状该系统的开发属于一个典型的外卖系统,在开发设计中主要涉及到的包括:数据库的设计、分析、连接、功能的实现、系统的维护以及用户的正确操作方式。并且通过对用户的需求分析来开发一个典型的餐厅外卖系统。还在一定程度上保证了系统的安全性和稳定性。该系统的设计易操作、易使用主要是为用户所设计的。逐步对用户需求进行满足。由于网络技术的迅速发展,人们对网络技术意识也是不断提高,通过网络的便利满足人们的需求,人们早已认可,根据该餐厅外卖系统可以得知,整个系统的后期要求越来越严格,并且采用的软件软件环境也是不断提高,所以说该餐厅外卖系统已经实现了现代化的信息化以及高效化的管理。通过网络的便利来开发该餐厅外卖系统系统是具有一定价值和意义的。2系统开发工具和开发平台2.1关键性知识及技术简介2.1.1JAVA概述Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之一,从发布初期到现今,可以说有将近20多年的历史,已发展成为人类计算机编程语言发展史上的一个深远影响。Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象;(3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等等。首先,Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。在软件开发过程中,其中的问题通过面向对象语言的基本特征来进行解决。也为软件开发提供了重要的贡献。其次,Java语言具有很好的跨平台无关性。所编写出来的应用程序是Java语言编写的,那么就无需再使用编译器来修改程序代码,可以直接在任何计算机系统中运行,通过一次编译,可以在Windows系统中运行,也可以在Linux系统中运行,所以Java语言具有卓越的可移植性,可以很好的跨平台实现。2.2.2B/S介绍B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。用户的请求通过数据库服务器进行处理。与传统的方式相比较,不论是在数据上面的维护还是经济方面的要求都是更加简便快捷的,从而使得管理具有层次化。在该页面中,管理员也可以对服务器硬件进行维护和数据库的更新。2.2mysql数据库平台数据库的种类有很多种,MySQL就是其中的一个,它是一个数据服务器,能够同时让多用户进行访问,能够多线程的处理事务,是一个强大的、高效的、属于一个安全且稳定的关系型数据库系统。并且免费和开源是该Mysql数据库的两大优点。由于它的开源性,世界上所有的程序员都可以对其进行二次开发,这样MySQL数据库就变的更多元化、通用化、简单化、方便化。每个数据库都有其相应的接口,MySQL的数据接口可以和现在市面上流行的很多语言进行匹配。实现真正的多用户多线程。而且,据世界软件组织IIEDS调查,MySQL数据库是现在中小程序开发中使用的最多的数据库,由于它的开源和操作简单,Myspl数据库的是每个开发者的首选技术,多用户、多线程的一个服务器,该系统主要采用的就是SQL的数据库,数据库管理系统是基于SQL的客户以及服务器模式的关系。该系统的主要功能如下:功能强大、操作简易、跨平台性强、安全性高以及稳定性强等特点。对于Web站点和其它软件很适合。通过对数据库后端的开发,会员可以编写和访问Myspl数据库程序,Myspl数据库是开放源代码的,所以大部分的开发者都是首选Mysql作为系统数据库,由于该数据库使用的数量多,所以被广泛的推广。并且受到人们的欢迎和认可。mysql数据库它有很多的优点,例如它在操作上能够让人通俗易懂、功能强大、信息储存量高等优点。所以被人们广泛应用,对于mysql数据库来说它一般主要是对数据进行编码和查询,而且在很多的设计当中都应用到了该数据库,在此过程当中我们可以对常规的数据进行查询和组合,所以我们在进行使用mysql数据库的时候只要对编写一小段的数据就能实现相应的功能。数据库,就是数据存储的储藏室,只不过数据是存储在计算机上的,而不是现实中的储藏室,数据的存放是按固定格式,而不是无序的,则定义就是:长期有固定格式,将共享数据可以通过数据库进行储存,一个数据库的整体包括数据表的建立、数据存储、数据修改以及数据添加等方面。通过以上几方面的完善。才能保证数据库能够正常运行。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。2.3系统开发环境及工具操作系统:MicrosoftWindows10开发语言:JAVA技术开发工具:myeclipse开发环境:jdk1.8数据库:mysql3系统总体分析3.1系统可行性分析(1)技术可行性:基于web的餐厅外卖系统的设计与实现中Java是主要开发技术,该系统的前端和后端主要是由B/S结构和Mysql数据库来进行完成,在开发本系统时,必须要保证该系统具有一定的完整性和简便性等功能。数据库方面必须要保证数据库具有一定的安全性和稳定性。在学校简单的对Java技术和通过对Mysql数据库和各个语言进行简单学习之后,然后进行了软件测试,根据简单的学习基本可以对课程的学习做出简单的系统开发、检测和辨别。(2)经济可行性:在该系统中所有的开发软件都是开源的,大大的减少时间和节约成本,并且还可以提高开发效率,使用本系统并不需要多么高的电脑配置,只需要能够登录网站的低配置都可以,所以说开发本系统在经济上是具有可行性的。(3)操作可行性:基于web的餐厅外卖系统的一大特点是注册登录界面简单且易操作,都是采用常见的窗口来进行登录,只需要通过电脑就可以进行操作登录,只要会使用电脑,就可以随时随地的进行登录访问。该系统主要采用的是Java技术进行开发,并且基于B/S结构,这些开发工具使该系统更加完善和规范,从而使得系统更具有人性化。根据以上功能看出,本系统的主要特点就是易操作、易管理。所以开发一个基于web的餐厅外卖系统刻不容缓。经过以上的叙述,所以开发此系统在经济上、技术上是满足开发条件的。3.2系统功能需求分析客户需求分析:顾客需要注册,并且可以修改用户名和密码,并且可以查看查看菜品信息,进行网上餐厅外卖系统,也可以在线留言,会员可以订购多个菜品信息,还可以对自己已经订购的菜品进行查看,前台菜品订购功能简介明了,操作简单快捷。管理员需求分析:管理员有自己的账户,登陆后能进行密码修改还可以进行管理员分配,最主要的就是产品的维护菜品信息管理,菜品分类管理,菜品录入操作,还可以管理公告留言,并可以查看此客户所申请的产品订单和订单管理。3.3系统用例分析此次开发的基于web的餐厅外卖系统中,主要是围绕用户和管理员的需求进行满足。用户间静结构如图3-1所示:图3-1用户间静态结构图(1)用户功能需求用户进入系统可以查看我的信息、网站论坛,我的购物车、我的订单管理等,用户用例图如图3-2所示。图3-2用户用例图(2)管理员功能需求管理员登陆后,主要功能模块包括密码修改、用户管理、类别管理、添加类别、菜品管理、添加菜品、订单管理、网站论坛等功能。管理员用例图如图3-3所示。图3-3管理员用例图3.4系统性能需求分析无论是哪个系统都有着自己的设计规则。以下是该系统的设计标准:简单:如果系统能够正常运转,并且功能强大,在这样的前提下,在将系统设计的更容易理解,就使系统更加完善了。针对性:开发基于web的餐厅外卖系统设计及后台管理的设计是本次的主要设计,最终使系统功能突出和针对性强的特点。适用范围:针对基于web的餐厅外卖系统设计的基本信息进行管理,使得系统具有良好的可用性。4系统总体设计4.1系统实现功能简介4.1.1系统总体功能简介如下图4.1所示,整个餐厅订餐系统主要实现管理员和用户,用户进入系统可以查看菜品信息并在线下单订餐,管理员后台管理信息包括对菜品、类别的添加、删除、修改以及查看等。图4.1系统总功能图4.1.2会员界面设计当用户进入系统后需要登录时,首先要输入自己的用户名和密码,然后数据库会自动进行查找相关数据,如果输入账号或密码错误,系统会提示重新登录。反之,进入系统,就可以根据选择对系统进行各种管理操作。是否登录是否登录注册餐厅外卖系统留言否我的信息会员开始提交订单我的订单查看浏览公告浏览菜品选择餐厅外卖系统修改个人信息修改登录密码图4.2登录界面流程图

4.1.3管理员界面功能设计是否登录是否登录登录菜品管理查看订单信息否信息维护管理员开始添加菜品进行留言管理公告管理删除某个菜品修改菜品信息分配权限修改登录密码图4.3管理员界面功能设计图4.2数据库结构分析4.2.1数据库表设计一个计算机信息系统的基础就是数据库的建立,也是一个电脑系统的关键与核心。通过数据库的好坏直接决定了整个系统的存活问题。概念模式它主要是建立在数据需求分析的基础上,它通常是用概念数据模型来表示各个数据之间的联系,并且对系统用户进行信息的处理和管理,同时建立起E-R图来表示具体的实体、属性和联系的关系。数据模型中的实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,公司中的每个员工,家里中的每个家具。本次使用的数据库都是通过代码进行设计,没有使用具体的可视化软件。根据各个模块之间的逻辑关系设计了7个数据表,具体如下:用户信息表,用来保存系统用户的资料,包括用户的角色,性别,等等个人信息;菜品信息表的主键是序号,此序号除了标识菜品信息的内容,还区分了显示内容的顺序,留言表的主键同样是序号,因为它是针对某个菜品的,所以他的外键是菜品的序号。表4.1用户列表序号字段名类型长度字段描述1IDint用户标识2logonamenvarchar24用户名,登录时所用3loginpwnvarchar32用用户的登录密码4namenvarchar8用户的姓名5sexvarchar32性别6agebit年龄7addressvarchar64地址8telvarchar32用户的联系电话9emailvarchar32用户的邮箱10qqvarchaQQ表4.2菜品列表序号字段名数据类型长度字段描述1IDint菜品品的唯一标识2Catalog_idint菜品类别3Namenvarchar32姓名4jieshaonvarchar32介绍5jiagenvarchar256价格6fujiannvarchar32图片7fujianyuanshiminnvarchar256图片8Shijiandatetime菜品提交的时间表4.3留言列表序号字段名数据类型长度字段描述1IDint唯一标识2titlenvarchar50标题3contentnvarchar50内容5shijiannvarchar50时间6User_idint50用户ID表4.4管理员列表序号字段名数据类型长度字段描述1IDint唯一标识2userIDnvarchar50标题3userPWnvarchar50内容表4.5类别列表序号字段名数据类型长度字段描述1IDint唯一标识2namenvarchar50名称3jieshaonvarchar50介绍4delnvarchar50备注表4.6公告列表序号字段名数据类型长度字段描述1IDint唯一标识2titlenvarchar50标题3contentnvarchar5000内容4shijiannvarchar50备注表4.7订单列表序号字段名数据类型长度字段描述1IDint唯一标识2shuliangnvarchar50标题3songhuodizhinvarchar5000内容4fukuanfangshinvarchar50备注5Goods_IDint10商品编号6User_IDnvarchar10用户7zhuangtainvarchar10状态8delnvarchar10操作4.2.2数据库设计E-R图本系统数据库E-R图如图4.4所示。图4.4数据库E-R图5系统实现5.1首页界面用户进入系统首页可以查看我的信息、我的论坛以及查看菜品信息、在线下单订餐等操作。首页界面如下图所示;图5.1首页界面界面5.1.1用户注册模块如图5.2,员工通过添加个人信息进行注册成为会员后登录系统开始下单订餐。用户注册界面如下图所示:图5.2用户注册界面实现主要代码:publicclassTUserDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TUserDAO.class); protectedvoidinitDao() { //donothing } publicvoidsave(TUsertransientInstance) { log.debug("savingTUserinstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TUserpersistentInstance) { log.debug("deletingTUserinstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } }

5.2.2菜品信息模块 菜品信息模块,如图5.3。用户进入系统可以查看网站菜品信息并在线购买各类菜品。用户可以通过菜品类别查找自己想要购买的菜品。菜品信息如图5-11所示:图5.3菜品信息界面相关代码:publicclassTGoodsDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TGoodsDAO.class); //propertyconstants publicstaticfinalStringGOODS_NAME="goodsName"; publicstaticfinalStringGOODS_MIAOSHU="goodsMiaoshu"; publicstaticfinalStringGOODS_PIC="goodsPic"; publicstaticfinalStringGOODS_YANSE="goodsYanse"; publicstaticfinalStringGOODS_SHICHANGJIA="goodsShichangjia"; publicstaticfinalStringGOODS_TEJIA="goodsTejia"; publicstaticfinalStringGOODS_ISNOTTEJIA="goodsIsnottejia"; publicstaticfinalStringGOODS_ISNOTTUIJIAN="goodsIsnottuijian"; publicstaticfinalStringGOODS_CATELOG_ID="goodsCatelogId"; protectedvoidinitDao() { //donothing } publicvoidsave(TGoodstransientInstance) { log.debug("savingTGoodsinstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TGoodspersistentInstance) { log.debug("deletingTGoodsinstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } } publicTGoodsfindById(java.lang.Integerid) { log.debug("gettingTGoodsinstancewithid:"+id); try { TGoodsinstance=(TGoods)getHibernateTemplate().get( "com.model.TGoods",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicListfindAllLiuYan(intgid) { log.debug("findingallTLiuyaninstances"); try { StringqueryString="fromTPlasmodelwheremodel.gId="+gid; returngetHibernateTemplate().find(queryString); }catch(RuntimeExceptionre) { log.error("findallfailed",re); throwre; } } publicListfindByExample(TGoodsinstance) { log.debug("findingTGoodsinstancebyexample"); try { Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre) { log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue) { log.debug("findingTGoodsinstancewithproperty:"+propertyName +",value:"+value); try { StringqueryString="fromTGoodsasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre) { log.error("findbypropertynamefailed",re); throwre; } }

5.2.3我的购物车模块 我的购物车模块,如图5.4。用户将想要购买的菜品加入购物车,对购物车进行清空、继续下单等操作。图5.4我的购物车界面相关代码: privatestaticfinalLoglog=LogFactory.getLog(TOrderItemDAO.class); //propertyconstants publicstaticfinalStringORDER_ID="orderId"; publicstaticfinalStringGOODS_ID="goodsId"; publicstaticfinalStringGOODS_QUANTITY="goodsQuantity"; protectedvoidinitDao() { //donothing } publicvoidsave(TOrderItemtransientInstance) { log.debug("savingTOrderIteminstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } }5.2.4网站论坛模块 网站论坛模块,如图5.5所示。用户添加论坛标题和内容点击提交留言可以进行在线留言以及查看管理员回复内容等操作。图5.5网站论坛界面相关代码:publicclassTLiuyanDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TLiuyanDAO.class); //propertyconstants publicstaticfinalStringLIUYAN_TITLE="liuyanTitle"; publicstaticfinalStringLIUYAN_CONTENT="liuyanContent"; protectedvoidinitDao() { //donothing } publicvoidsave(TLiuyantransientInstance) { log.debug("savingTLiuyaninstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoidsave(TPltransientInstance) { log.debug("savingTLiuyaninstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TLiuyanpersistentInstance) { log.debug("deletingTLiuyaninstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } } publicTLiuyanfindById(java.lang.Integerid) { log.debug("gettingTLiuyaninstancewithid:"+id); try { TLiuyaninstance=(TLiuyan)getHibernateTemplate().get( "com.model.TLiuyan",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicTGoodsfindTGoodsById(java.lang.Integerid) { log.debug("gettingTLiuyaninstancewithid:"+id); try { TGoodsinstance=(TGoods)getHibernateTemplate().get( "com.model.TGoods",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicListfindByExample(TLiuyaninstance) { log.debug("findingTLiuyaninstancebyexample"); try { Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre) { log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue) { log.debug("findingTLiuyaninstancewithproperty:"+propertyName +",value:"+value); try { StringqueryString="fromTLiuyanasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre) { log.error("findbypropertynamefailed",re); throwre; } }});

5.3管理员模块管理员登录之后显示的界面主要有6个模块,如图5.6所示,包括密码修改、用户管理、类别管理、添加类别、菜品管理、添加菜品、订单管理、网站论坛等。界面以简明清晰为主,减少管理员的操作量。图5.6管理员登录界面5.3.1密码修改管理员通过输入正确的登录名和原密码进行修改登录密码。修改登录密码重新登录需要输入新密码才可以登录系统。如图5.7所示。图5.7密码修改界面相关代码:packagecom.dao;importjava.util.List;importmons.logging.Log;importmons.logging.LogFactory;importorg.hibernate.LockMode;importorg.springframework.context.ApplicationContext;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importcom.model.TAdmin;/***Dataaccessobject(DAO)fordomainmodelclassTAdmin.**@seecom.model.TAdmin*@authorMyEclipsePersistenceTools*/publicclassTAdminDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TAdminDAO.class); //propertyconstants publicstaticfinalStringUSER_NAME="userName"; publicstaticfinalStringUSER_PW="userPw"; protectedvoidinitDao(){ //donothing }5.3.2用户管理模块用户管理模块主要用于已经注册成为会员的用户、管理员对其进行查看以及删除等操作。如图5.8所示。图5.8用户管理界面相关代码:publicStringuserReg() { Mapsession=ServletActionContext.getContext().getSession(); Stringoldcode=session.get("certCode").toString(); if(oldcode.equals(code)){ TUseruser=newTUser(); user.setUserName(userName); user.setUserPw(userPw); user.setUserAddress(userAddress); user.setUserTel(userTel); user.setUserRealname(userRealname); user.setUserEmail(userEmail); user.setUserSex(userSex); user.setUserQq(userQq); user.setUserDel("no"); userDAO.save(user); session.put("user",user); return"successAdd"; }else{ return"failAdd";5.3.3类别管理模块类别管理模块主要用于管理员对类别信息进行添加、删除、修改以及查看操作。如图5.9所示:图5.9类别管理界面相关代码:packagecom.action;importjava.util.List;importjava.util.Map;importorg.apache.struts2.ServletActionContext;importcom.dao.TCatelogDAO;importcom.dao.TGoodsDAO;importcom.model.TCatelog;importcom.opensymphony.xwork2.ActionSupport;publicclasscatelogActionextendsActionSupport{ privateintcatelogId; privateStringcatelogName; privateStringcatelogMiaoshu; privateStringmessage; privateStringpath; privateTCatelogDAOcatelogDAO; privateTGoodsDAOgoodsDAO; publicStringcatelogMana() { Stringsql="fromTCatelogwherecatelogDel='no'"; ListcateLogList=catelogDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("cateLogList",cateLogList); returnActionSupport.SUCCESS; } 5.3.4菜品管理模块菜品管理模块主要实现管理员对菜品ID、菜品名称、介绍、类别、图片、价格等属性进行添加、删除、修改以及查看等操作。如图5.10。图5.10菜品管理列表相关代码:packagecom.action;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Date;importjava.util.List;importjava.util.Map;importorg.apache.struts2.ServletActionContext;importcom.dao.TCatelogDAO;importcom.dao.TGoodsDAO;importcom.model.TCatelog;importcom.model.TGoods;importcom.opensymphony.xwork2.ActionSupport;publicclassgoodsActionextendsActionSupport{ privateintgoodsId; privateintgoodsCatelogId; privateStringgoodsName; privateStringgoodsMiaoshu; privateStringfujian; privateStringgoodsYanse; privateintgoodsShichangjia; privateintgoodsTejia; privateStringgoodsCj; privateintcatelogId; privateintgoodsKucun; privateStringmessage; privateStringpath; privateTGoodsDAOgoodsDAO; privateTCatelogDAOcatelogDAO; privateintrukushuliang; publicStringgoodsNoTejiaAdd() { TGoodsgoods=newTGoods(); goods.setGoodsCatelogId(goodsCatelogId); goods.setGoodsName(goodsName); goods.setGoodsYanse(goodsYanse); goods.setGoodsMiaoshu(goodsMiaoshu); goods.setGoodsPic(fujian); goods.setGoodsCj(goodsCj); goods.setGoodsShichangjia(goodsShichangjia); if(goodsTejia==0)//特格为0表示没有特价 { goods.setGoodsTejia(goodsShichangjia);//如果不是特价。把这个的特价设置为市场价格 goods.setGoodsIsnottejia("no"); } else { goods.setGoodsTejia(goodsTejia); goods.setGoodsIsnottejia("yes"); } goods.setGoodsKucun(goodsKucun); goods.setGoodsDel("no"); goodsDAO.save(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsM() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsCatelogId(goodsCatelogId); goods.setGoodsName(goodsName); goods.setGoodsYanse(goodsYanse); goods.setGoodsMiaoshu(goodsMiaoshu); goods.setGoodsPic(fujian); goods.setGoodsCj(goodsCj); goods.setGoodsShichangjia(goodsShichangjia); if(goodsTejia==0)//特格为0表示没有特价 { goods.setGoodsTejia(goodsShichangjia);//如果不是特价。把这个的特价设置为市场价格 goods.setGoodsIsnottejia("no"); } else { goods.setGoodsTejia(goodsTejia); goods.setGoodsIsnottejia("yes"); } goods.setGoodsKucun(goodsKucun); goods.setGoodsDel("no"); goodsDAO.merge(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsNoTejiaDel() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsDel("yes"); goodsDAO.attachDirty(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsManaNoTejia() { Stringsql="fromTGoodswheregoodsDel='no'orderbygoodsIsnottejia"; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); for(inti=0;i<goodsList.size();i++) { TGoodsgoods=(TGoods)goodsList.get(i); System.out.println(goods.getGoodsCatelogId()); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); } Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; } publicStringgoodsmb() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("bean",goods); returnActionSupport.SUCCESS; } 5.3.5订单管理模块管理员对用户订单信息查看明细、受理订单以及删除订单等操作。如图5.11所示:图5.11订单管理实现主要代码:publicStringorderMana() { Stringsql="fromTOrderorderbyorderUserId"; ListorderList=orderDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS; } publicStringorderDel()//用户自己删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Mapsession=ServletActionContext.getContext().getSession(); TUseruser=(TUser)session.get("user"); this.setMessage("删除成功"); this.setPath("myOrder.action?userId="+user.getUserId()); return"succeed"; } publicStringorderDelByAd()//管理员删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Stringsql="deletefromTOrderItemwhereorderId="+orderId; orderItemDAO.getHibernateTemplate().bulkUpdate(sql); this.setMessage("删除成功"); this.setPath("orderMana.action"); return"succeed"; } publicStringorderShouli() { TOrderorder=orderDAO.findById(orderId); order.setOrderZhuangtai("yes");//已经受理订单 orderDAO.attachDirty(order); this.setMessage("受理订单成功"); this.setPath("orderMana.action"); return"succeed"; } 5.3.6网站论坛模块管理员对用户留言信息进行查看以及删除权限。如图5.12所示:图5.12网站论坛实现主要代码;publicStringliuyanAdd2() { TPlliuyan=newTPl(); liuyan.setLiuyanContent(liuyanContent); liuyan.setLiuyanDate(newDate().toLocaleString()); Mapsession=ActionContext.getContext().getSession(); if(session.get("user")!=null) { TUseruser=(TUser)session.get("user"); liuyan.setLiuyanUser(user.getUserName()); } TGoodsgoods=liuyanDAO.findTGoodsById(liuyanId); liuyan.setgId(goods.getGoodsId()); liuyanDAO.save(liuyan); this.setMessage("评论成功"); return"succeed"; } publicStringliuyanDel() { TLiuyanl

温馨提示

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

评论

0/150

提交评论