【《基于JSP的网上订餐系统的设计与实现》9000字】_第1页
【《基于JSP的网上订餐系统的设计与实现》9000字】_第2页
【《基于JSP的网上订餐系统的设计与实现》9000字】_第3页
【《基于JSP的网上订餐系统的设计与实现》9000字】_第4页
【《基于JSP的网上订餐系统的设计与实现》9000字】_第5页
已阅读5页,还剩38页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第I页基于JSP的网上订餐系统的设计与实现摘要随着计算机科学技术的快速发展,电子商务的发展,影响各行各业的发展。近年来,人们生活速度的加快,网上订餐已经成为人们日常生活中越来越热枕的方式。通过网上订餐,人们不仅可以实现在线选餐、送货上门的服务,而且也可以避免浪费大量的时间。网上订餐是继网上购物以来又一新型的电子商务形式。通过网上订餐的形式,可以快速在线订购自己喜欢的美食,方便、快捷。本文从用户的需求出发,结合电子商务行业系统的发展特点,先了解了网上订餐背景,解决了菜品的发布、菜单选择以及总体的核算、菜品分类等问题。然后,介绍了与这篇文章相关的系统开发技术,利用当下主流框架SSM,并用功能强大的MySQL支持数据库。关键词:网上订餐,Java,MySQL目录1绪论 11.1开发背景与意义 11.2研究现状 11.3论文内容及结构 12系统开发技术介绍 32.1开发技术介绍 32.1.1Java简介 32.2.2JSP简介 32.2.1SSM的介绍 33系统分析 63.1系统可行性分析 63.2系统需求分析 73.3系统需求分析 73.4系统非功能性需求分析 84系统设计 104.1系统架构设计 104.2系统的总体构思 104.3数据库设计 104.3.1概念模型设计 114.3.2数据库表设计 135系统实现 165.1用户注册 165.2用户登录 165.3菜品展示 185.4菜品搜索 185.5菜品详情展示 205.6生成订单 215.7用户留言 235.8管理员登陆 235.9用户管理 255.10分类管理 265.11货物管理 275.12订单管理 285.13用户的反馈管理 296系统测试 296.1系统测试 296.2系统维护 306.3测试目的 306.4测试实例 316.5测试结果 317结束语 32参考文献 34附录 351绪论1.1开发背景与意义本章主要对网上订餐系统进行详细的描述,较为完整地介绍了该系统的开发产生的条件,意义以及现在面临的情况。近年来,随着人们生活步伐的加快,越来越多的人们都会选择网上订餐,因此网上订餐已经越来越受人们的欢迎。通过网上订餐的方式,人们不仅可以通过电脑、手机等选择自己想要选择的食品,而且可以避免浪费大量的时间。就目前而言,像“美团”、“饿了么”等这些网上订餐的平台,拥有了很大的好评度。所以这次的毕业设计我的选题是“网上订餐系统”,该系统的开发是与时俱进顺应当今社会的潮流和趋势,能够满足人们日常的需求。1.2研究现状黄信洋指出伴随着我们现代高科技的快速发展,计算机的应用在当代的生活中日益广泛,已经逐渐深入人们的生活,网络技术与各个服务行业的连接日渐加强,各种方便的软件逐个被开发应用到现实生活中,在这样的大前提下,各个服务行业的前景也被无限放大[1]。杨彤蕾指出随着计算机和网络的日趋发展,网上店铺如雨后春笋般出现,就连沃尔玛,金拱门这一类老品牌的商家都开拓了自己的网上购物渠道,有调查表明:无论是中国还是西方国家,越来越的用户已经习惯于网络购物,人们的消费平台逐渐开始向虚拟世界转移,而网上订餐是其中重要的一环,发展网络订餐平台已经成为了新的时代的新的需求[2]。1.3论文内容及结构本论文一共由六章组成,下面是对于各部分的描述:(1)绪论该节主要从对网上订餐系统的产生的条件、实际的意义、还有以及系统的发展状况进行的总结与叙述,同时我们也在系统的应用方面着手进行阐述。(2)系统的具体分析想要进行系统的具体分析,首先我们要先从用户的需求分析出手,然后进行可行性分析、角色划分、角色功能分析等。(3)系统设计我们针对系统的结构以及数据库的方面入手,然后设计和实现出我们要做的网上订餐系统,我们还会用图片等形式向大家展示出来,方便读阅。(4)系统的实现开发出的系统的主要界面进行展示。(5)系统测试此章节是我们让所作出的程序进入最后的测试阶段,通过具体的测试发现问题,然后用来更新完善我们的系统。我们会针对不同的模块设计出相应的测试用例,从而做到对系统的查漏补缺。(6)结束语该部分是对设计系统的过程中遇到的问题和解决方法的总结,对未来性的期望。2系统开发技术介绍2.1开发技术介绍2.1.1Java简介Java是一款目前流行性很强的开发语言,无论在手机方面还是互联网方面,Java都应用广泛。这一款语言和C++很像,但Java摒弃了C++中很少使用的一些特征,继续保持C++语言受人们喜欢的一些优点:快速、安全。2.2.2JSP简介JSP这一技术的引入,主要原因是为了弥补servlet不方便展示信息的缺点,但它在本质上来说,也还是一个servlet。利用JSP能够使得开发出的程序具有动态、高性能的特点。在运行安装tomcat,tomcat免费而且开源,所以利用JSP开发的程序费用方面不用考虑。除了这一点,JSP还有很多优势,这也是为什么选用JSP来开发本本系统的原因。(1)ASP有专用语言的限制,而JSP没有,可用Java编写,同时还有很强的可移植性能。(2)JSP还能对很多网页格式进行支持。(3)在JSP程序开发中使用了Java,所以说,也有了Java的所有好处,包括编写一次就能处处都使用、安全性能高等。2.2.1SSM的介绍Spring是一个轻量式、低侵入式的框架。这个框架可以减少开发的复杂程度,同时在去除此框架后,我们只需要更改一些配置信息就可以了,大大方便了我们的开发。SpringMVC模块响应图如图2.1所示。图2.1SpringMVC模块响应图Mybatis的三层功能架构:(1)基础支持层:通过负责数据库连接、配置加载、缓存处理和事务管理这些部分来为表层提供支持。(2)数据处理层:SQL语句的生成,并对其进行处理。(3)API接口层:给我们的开发提供了大量API接口,并和其他层共同对数据库进行操作。下面是三层功能架构图,如图2-2所示。图2.2MyBatis三层功能架构图

3系统分析我们针对我们所对系统设计的功能做出相应的可行性的分析以及对客户的需求分析。主要分析了我们这个系统中所实现的一些功能和对这个项目完成后能达到什么样子的效果的展望。3.1系统可行性分析系统可行性分析工作就是对系统进行分析的全过程中必须要做的一个操作。它在进行系统设计与开发前的第一个环节。这个连接不仅仅是为了完成一个系统,而是通过简单的数据分析流程来对其进行可以及深入地研究。从任务开始,系统的设计是可行的,并且还可以将设计的系统直接放置在稳定的服务器上。以下会从以下三个方面来入手。技术可行性在Java+MySQL的基础上,然后通过知识的积累学习,学习和掌握spring框架。经过我们的分析和考虑,通过一定的研究和分析可以解决上述难点和问题。经济可持续性研究我们所设计的这个系统的经济效益是相对可观的,我们在对项目的编写、运维成本进行估计后,最后认为该系统在经济上是可行的。拓展可行原则系统在开发中要考虑后期的维护,对于拓展性方面,代码是否可以进行拓展和文本复用,随着人们需求的不断提高,系统也要结合实际进行不断升级,保证系统拓展后可以正常使用,数据可以存储大量信息。操作者如果需要添加、修改和删除功能,如果系统拓展差的话,系统可能会奔溃,导致不必要的麻烦的产生,所有我们在开发前期就应该想到系统的拓展性能,必须能够达到要求[11]。3.2系统需求分析网上订餐系统市场的潜力巨大,改变传统管理方式势在必行,推出可行的系统也很紧迫。用户的具体功能如下:用户注册:游客可以在注册页面注册账号。用户登录:输入已经拥有的账号进入。陈列菜品:使用者可以在我们的系统首页面看到我们所陈列的美食。菜品搜索:我们的用户可以根据自己中意的口味对菜品进行搜寻,从而找到适合自己的口味,方便了选择困难症的人群。商品详情的查看:使用者可以在挑选商品的过程中对每个商品的细节进行观看。生成订单:我们的客户在选择好商品后下单,我们的系统要对此笔订单开具证明(自动生成)并展现在用户的页面中。发布留言:用户可以对管理员进行留言,有助于管理员更好的管理网站。下面是为了满足管理员需求而需要实现的具体功能:(1)登录功能:管理者可以通过登录指令进入到网上订餐系统的后台界面。(2)管理功能:我们这个系统的管理功能分为四小块儿:①对使用此网站的用户的管理:管理者可通过后台对用户的信息进行增删改查操作;②对网站中的商品进行有效的分类:使用者可以通过后台管理系统对相同类型的菜品进行分类,同时直接出现在用户的首页中;③对商品的管理:管理者可以在后台系统中对商品进行相应的操作,同时出现在用户的首页中;④对订单的管理;⑤对用户留言的管理。3.3系统需求分析用户用例图图如图3.1所示。图3.1用户用例图管理员用例图如图3.2所示。图3.2管理员用例图3.4系统非功能性需求分析系统非功能分析是对除了功能结构以外的信息进行分析,一个系统设计很多方面,我们需要保证所有信息都完善、确保稳定,能够正常运行。1.数据安全可靠无乱码。数据在系统中表演着至关重要的角色,它的完整与否与我们系统运行好坏休戚相关!大概意思是我们建立的数据库中的所有信息都可以进行前端展示,并且要保证数据安全可靠无乱码。2.设计的页面让用户赏心悦目。由于我们设计的系统要进可能的适和广大人群,那么我们所设计的页面要让用户既有体验又能一目了然,从而方便使用的人进行购买。3.逻辑性。系统逻辑不能出现错误,第一步到第二部再到第三部,必须符合正常逻辑思维。4系统设计4.1系统架构设计在设计该系统的架构时,我们考虑到方便用户更好的开发系统以及系统所具有的一些局限性,最终我们决定采用B/S。4.2系统的总体构思俗话说的好,在做一件事情前我们要先想一想我们要怎么做、如何去做。这也就告诉我们构思的重要作用。在系统设计之前,我们要先对系统的设计做出总体的布局,这样才能让我们的系统更加具有逻辑,并且方便我们在后期对系统的维护。本次的设计我们将网站分为用户和管理者(后台)两个相应的功能;其中用户这个部分的功能包括用户的登录、注册、菜品展示、搜索、菜品详情展示、生成订单、发布留言这七个小块儿;后台(管理员)这个部分的功能板块儿,我们设置了登入、操作(订单详情、菜品、用户发布的留言)功能,这样的构思我们是遵守方便客户的原则来设计的,这样的设计构思可以给用户很不错的体验。功能结构图如图4.1所示。图4.1系统功能结构图4.3数据库设计4.3.1概念模型设计数据库在程序的设计中扮演了极为重要的角色,它将系统涉及的数据全部容纳其中,在数据库设计时,为了能够明确思路,一般都是先构建实体E-R图,在构建实体E-R图时采取先确定好我们所需要的实体,从而再规划实体属性的方法。(1)管理员实体如图4.2所示。图4.2管理员实体图(2)商品分类实体如图4.3所示。图4.3商品分实体图(3)订单实体如图4.4所示。图4.4订单实体图(4)商品实体如图4.5所示。图4.5商品实体图(5)用户实体如图4.6所示。图4.6用户实体图4.3.2数据库表设计数据库表的设计是我们通过系统分析所选择的DBMS模型来进行后台数据的存储,数据库是系统后台的核心,数据库就相当于一个寄存东西的堆栈,在我们需要的时候进入堆栈中去取东西。建立的数据库如下。(1)客户表如表4.7所示。表4.7客户表列名数据类型长度备注uidint11IDusernamevarchar255用户名passwordint255密码(2)商品分类表如表4.8所示。表4.8商品分类表序号列名数据类型长度备注1idint11ID2c-namevarchar255商品分类名(3)订单表如表4.9所示。表4.9订单表序号列名数据类型长度备注1oidint11ID2moneyvarchar255金额3receiveinfovarchar255地址4phoNumvarchar255电话5Order_timevarchar255时间(4)商品表:商品表如表4.10所示。表4.10商品表序号列名数据类型长度备注1pidint11ID2pnamevarchar255商品名3Market_pricevarchar255优惠价格4Shop_pricevarchar255商店标价5imagevarchar255商品图路径6pdescevarchar255商品详情7pdatevarchar255上架时间(5)用户表:课程表如表4.11所示。表4.11用户表序号列名数据类型长度备注1uidint11ID2usernamevarchar255用户昵称3passwordvarchar255密码4namevarchar255用户姓名5emailvarchar255邮箱6phoneint255电话7addrvarchar255地址

5系统实现该网上订餐系统各模块的具体功能实现如下。5.1用户注册游客可以在此页面进行账号注册,便于系统管理员更好的管理系统,游客注册之后具有标识性,用户注册页面如图5.1所示。图5.1用户注册图5.2用户登录如图5.2所示。图5.2用户登录界面核心代码:request.getSession().setAttribute("loginUser",loginUser);request.getSession().removeAttribute("message");return"redirect:index.action";5.3菜品展示用户登录成功后,可以在网站首页看到各种各样的菜品,其具体功能如图5.3所示。图5.3菜品展示页面5.4菜品搜索用户在系统搜索框中可以直接对菜品进行准确搜索,可以有效的减少用户的选品时间,其界面图如图5.4所示。图5.4搜索界面搜索功能关键代码:List<Product>srList=productService.searchProduct(condition);model.addAttribute("srList",srList);5.5菜品详情展示用户在选择商品时,我们为了可以让用户放心购买的,我们设置了这个菜品详情展示栏,用户可以在点击后看到商品的介绍、评价等信息如图5-5所示。图5.5菜品展示界面菜品展示关键代码:publicStringproductFindByPid(@RequestParamintpid,Modelmodel)throwsException{ Productproduct=prodcutSductFindByPid(pid); model.addAttribute("product",product); return"product"; }5.6生成订单在这个页面上,我们可以实现以下功能:用户点击购买之后,系统自动生成订单并展现在用户的页面中。其效果图如图5.6所示。图5.6订单生成界面核心代码:for(Entry<Integer,CartItem>entry:cartItems.entrySet()){CartItemcartItem=entry.getValue(); Orderitemorderitem=newOrderitem(); orderitem.setProduct(cartItem.getProduct()); orderitem.setCount(cartItem.getCount()); orderitem.setPid(cartItem.getProduct().getPid()); orderitem.setSubtotal(cartItem.getSubtotle()); orderitem.setOid(orders.getOid()); orders.getOiList().add(orderitem); orderService.toOrderItem(orderitem); } cart.clearCart(); request.getSession().setAttribute("orders",orders); return"order";5.7用户留言用户可以登录,并提出自己的意见反馈,有助于管理员更好的管理网站,其展示如图5.7所示。图5.7留言界面5.8管理员登陆用户可以登录,并提出自己的意见反馈,有助于管理员更好的管理网站,其展示如图5.8所示。图5.8管理员登陆界面管理员登录关键代码://admin/adminUser_login.action//adminUser_login管理员登录 @RequestMapping("/admin/adminUser_login") publicStringadminUser_login(HttpServletRequestrequest,Modelmodel,@RequestParamStringusername,@RequestParamStringpassword)throwsException{ AdminuseradminuserLogin=userService.adminUser_login(username,password); System.out.println(username); System.out.println(password); if(adminuserLogin==null){ model.addAttribute("message","改用户未被授予管理员身份!"); return"admin/index"; } request.getSession().setAttribute("adminuserLogin",adminuserLogin);// model.addAttribute("adminuserLogin",adminuserLogin); return"admin/home"; }5.9用户管理管理员可以在系统中,对信息进行增删改查操作,如图5-10所示。图5-10用户管理界面用户管理主要代码如下:@RequestMapping("/admin/admin_findAll") publicStringadmin_findAll(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } List<User>userList=userService.admin_findAll(); model.addAttribute("userList",userList); return"admin/user/list"; } @RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }5.10分类管理管理的人可以在后台系统中对食物的种类进行分类,这样的话就会大大方便用户的选餐,节省用户的时间,在管理员对商品进行分类后,顾客在登录首页会直接看到,也就像实时更新一样。具体如图5.11。图5.11分类管理界面5.11货物管理分出食品的类别从而方面客户的查询,同时还具有修改商品详情的权限,方便商家更好的介绍自己的产品从而得到顾客的青睐,管理者也可自行的增删商品,管理员进行的操作直接出现在用户的首页中。具体如图5.12图5.11商品管理界面流程图如下:图5.12商品管理流程图5.12订单管理订单管理流程图如下:图5.13订单管理流程图在系统中的订单管理模块中,具体如图5.14。5.14订单管理界面5.13用户的反馈管理在系统中的用户反馈模块,管理员可以对其进行操作。具体如图5.15。5.15留言管理界面6系统测试在此,要对开发的系统进行测试这部分的工作了,这也意味着程序即将完成,但测试艰巨度还是很大的,测试费时费力,还相当重要,通过测试是为了发现问题,检测程序。6.1系统测试(1)兼容性测试其测试的目的是保证其系统在浏览器中完成所有设计需求功能。(2)下载时间和容量(3)系统的人机工程(4)检测链接(5)应用程序测试6.2系统维护在我们在对系统的每个部分进行测试后,所有的测试都完成了,系统可以正常的运行,我们在这个时候就要把我们的关注点放在系统后期的维护和升级中了。我们在对系统进行这个阶段的操作的时候,我们可以把重心放到系统的核心问题上,比如说针对数据库的升级和保护,我们的系统在面向客户时,人群的占比小的话,我们通常会选择小型的服务器,但当我们面对的业务范围大的时候就会存在由于我们的服务器小而造成的停机的情况,这个时候我们就要考录到对我们原先选择的服务器进行升级了。同时操作系统也是我们的系统能够稳定运行的根本,因此我们也要加强对操作系统的重视(升级和维护)。6.3测试目的系统测试是系统的最后一部分,在系统开发过程中多多少少会出现错误,这些错误有可能会导致字段不现实或者系统启动不了,一个小的错误需要我们耗费大量时间去解决,所有在系统开发过程中一定要尽量不必要的错误产生。一、功能测试:功能必须完善,所有页面显示的功能都可以进行操作,如果功能方面有所欠缺需要尽快完善,找出系统的bug,防止不必要的麻烦的产生。二、性能测试:确保系统的稳定性,系统无论在什么环境、版本下都可以正常显示,并且3秒内可以进行数据输送和传达,展示页面信息三、安全测试:安全在各个场合都是放在第一位的东西,同样的我们在安全测试中要保证账号登录要安全并且能让用户放心,所以我们要保证我们所设计的系统在使用的人登录账号时是安全可靠的,这样可以避免用户信息的泄露,让用户放心的系统才有希望成为好的系统。6.4测试实例针对系统的各个功能挨个的进行过细的检测,检查我们所设计的系统的功能是否达到我们所期望的。下面我们挨个测试与系统各部分相对应的功能。测试用例表如表6.1所示。表6.1测试用例测试用例方案输入数据预期结果测试结果用户登录使用已存在的账号和相匹配的密码登录网站账号:kobe密码:12345系统提示登录成功,并跳转至系统主页与预期结果一致搜索用户登录网站进行川菜搜索点击按键点击后跳转到川菜成功页面与预期结果一致订单管理管理员进到后台管理移除订单点击按钮点击后成功把订单移除与预期结果一致商品添加管理员进入后台管理系统之后添加商品点击添加按键,输入西红柿,9.9元等操作点击后跳转到成功添加商品并在用户界面显示与预期结果一致6.5测试结果该系统经过测试,可以满足相关信息的管理要求。

7结束语本文对网上订餐管理系统的相关方面进行了详细的剖析,通过以上内容成功的实现了网上订餐管理系统的设计与开发。本次毕业设计的开发,遵循IT开发技术的原则,最终实现系统预期的期望结果。毕业设计是对我们在大学中学到的知识的实践和应用。结果表明,经过测试,系统整体运行流畅,系统功能完善,系统整体构思明确,再运行过程中无重大问题产生,基本完成任务书和需求分析所要求达到的要求八个模块的增加功能、删除功能、修改功能、查询功能都正常运行,符合设计基本理念,达到测试用例所写出的测试场景和预期达到的目标,在运行操作中正常运行,所以系统设计成功。在这次的开发过程中,通过自身的学习和经历我积累了一些经验:系统分析在系统的设计开发中占据至关重要的地位,在我们开发前我们先要对系统的各个部分(需求、局限性、未来性)进行详细的分析,对系统的设计情况进行大体的规划,这就好比作画之前我们要先决定我们要使用什么色彩,使用什么纸张一样,纸张和色彩选择的好坏决定了这幅画的好坏。同理来说,一个系统的好坏也和我们在设计系统之前对系统的分析的好坏。在这次的毕业系统设计中,我们完成了系统的初步阶段,但是还存在着很多不足的地方,不管如何这是我第一次设计的系统,也是给大学四年呈上的答卷。在以后的工作中,我还会对该系统进行进一步的完善。参考文献黄信洋.网上餐饮信息服务平台设计与实现[D].电子科技大学,2019.杨彤蕾,李建.“互联网+”背景下高校学生群体外卖订餐现状及问题研究——以西安某高校为例[J].价值工程,2018,37(25):33-35.聂维,张忠,刘小豫.网上订餐系统的设计与开发[J].信息与电脑(理论版),2019,31(20):56-58.祝坤艳,杨艺,贾好朋.“互联网+”校园网上订餐的现状和问题[J].现代营销(下旬刊),2020(02):151-152.ZimmerMeghanC.,BeairdJacob,SteevesElizabethT.Anderson.WICParticipants’PerspectivesAboutOnlineOrderingandTechnologyintheWICProgram[J].JournalofNutritionEducationandBehavior,2020(prepublish).郝恬.针对双用户的订餐系统设计研究[D].武汉理工大学,2019.聂维,张忠,刘小豫.网上订餐系统的设计与开发[J].信息与电脑(理论版),2019,31(20):56-58.黄信洋.网上餐饮信息服务平台设计与实现[D].电子科技大学,2019.王金朔,孙延辉.基于SSM和Java的网上订餐系统设计[J].信息通信,2018(10):99-100.刘娟.基于ASP.NET的网上订餐系统的分析与设计[J].数字技术应用,2018,36(09):156-157.张紫微.高校食堂订餐系统的研究与分析[J].经济研究导刊,2018(14):188-189.张蕾.网上订餐系统的数据库设计[J].工业技术与职业教育,2018,16(01):12-14.[13]胡朝友,张星晨,吴海珍,常章梅.基于Java和MySQL软件的实验室菌种管理系统设计与应用[J].中华临床实验室管理电子杂志,2020,8(01):41-47.[14]朱运乔.基于SpringBoot+SSM框架的Web应用系统搭建与实现[J].电脑编程技巧与维护,2019(10):23-25.

附录用户注册核心代码:@RequestMapping("/userRegist") publicStringuserRegist(Modelmodel,HttpServletRequestrequest, @ValidatedUseruser,BindingResultbindingResult, @RequestParamStringcheckImg)throwsException{ if(bindingResult.hasErrors()){ List<ObjectError>errors=bindingResult.getAllErrors(); List<String>list=newArrayList<>(); for(ObjectErrorobjectError:errors){ Stringstr=newString(objectError.getDefaultMessage() .getBytes("ISO-8859-1"),"gbk"); list.add(str); } model.addAttribute("errors",list); return"regist"; } //查看验证码 StringsessionCode=(String)request.getSession().getAttribute( "checkcode");// System.out.println("adadadad"+sessionCode); if(!sessionCode.equalsIgnoreCase(checkImg)){// model.addAttribute("message","验证码错误请重新注册"); thrownewzdyException("验证码错误请重新注册"); } //开始写入数据库 userService.saveUser(user); //model.addAttribute("message","注册成功请去邮箱激活"); model.addAttribute("message","注册成功请登录"); return"ms

}用户登录关键代码://用户登录 @RequestMapping("/userLogin") publicStringuserLogin(HttpServletRequestrequest, @RequestParamStringcheckImg,Useruser,Modelmodel) throwszdyException,Exception{ StringsessionCode=(String)request.getSession().getAttribute( "checkcode"); if(!sessionCode.equalsIgnoreCase(checkImg)){ //model.addAttribute("message","验证码输入错误请重新注册"); //thrownewzdyException("验证码输入错误请重新注册"); request.getSession().setAttribute("message","验证码输入错误请重新注册"); return"redirect:login.action"; } UserloginUser=userService.loginFindByUnameAndPwd(user.getUsername(), user.getPassword()); if(loginUser==null){ //model.addAttribute("message","密码输入错误请重新登陆"); request.getSession().setAttribute("message","密码输入错误请重新登陆"); //thrownewzdyException("密码输入错误请重新登陆"); return"redirect:login.action"; } request.getSession().setAttribute("loginUser",loginUser); request.getSession().removeAttribute("message"); return"redirect:index.action";

}菜品展示关键代码:

@RequestMapping("/index") publicStringindex(Modelmodel,HttpServletRequestrequest)throwsException{ //查询一级分类 List<Category>cList=categoryService.findCategory(); request.getSession().getServletContext().setAttribute("cList",cList);// model.addAttribute("cList",cList); //查询热门商品 List<Product>hList=productService.findHotProduct(); model.addAttribute("hList",hList); //查询最新商品 List<Product>nList=productService.findNewProduct(); model.addAttribute("nList",nList); //滚动图片专用,最多显示3个商品 List<Product>sList; if(hList.size()>3) { sList=newArrayList<Product>(); sList.add(hList.get(0)); sList.add(hList.get(1)); sList.add(hList.get(2)); model.addAttribute("sList",sList); } else { model.addAttribute("sList",hList); } return"index"; }搜索功能关键代码:@RequestMapping("/searchProduct") publicStringsearchProduct(@RequestParamStringcondition,Modelmodel,HttpServletRequestrequest)throwsException{ //查询一级分类 List<Category>cList=categoryService.findCategory(); request.getSession().getServletContext().setAttribute("cList",cList); //查询商品 List<Product>hList=productService.findHotProduct(); model.addAttribute("hList",hList); //搜索商品 List<Product>srList=productService.searchProduct(condition); model.addAttribute("srList",srList); //滚动图片专用,最多显示3个商品 List<Product>sList; if(hList.size()>3) { sList=newArrayList<Product>(); sList.add(hList.get(0)); sList.add(hList.get(1)); sList.add(hList.get(2)); model.addAttribute("sList",sList); } else { model.addAttribute("sList",hList); } return"searchProdu;}菜品展示关键代码:@RequestMapping("/productFindByPid") publicStringproductFindByPid(@RequestParamintpid,Modelmodel)throwsException{ Productproduct=prodcutSductFindByPid(pid); model.addAttribute("product",product); return"product";}订单生成关键代码:@RequestMapping("/toOrder") publicStringtoOrder(HttpServletRequestrequest,Modelmodel)throwsException{ Ordersorders=newOrders(); Cartcart=(Cart)request.getSession().getAttribute("cart"); UserloginUser=(User)request.getSession().getAttribute("loginUser"); if(loginUser==null){ model.addAttribute("message","对不起您还没有登录"); return"msg"; }// 0表示没有付款、1表示已付款即将发货2表示确认收货3表示交易成功 orders.setState(0); //orders.setOrderTime(newDate());java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy-MM-dd");Stringtoday=sdf.format(newDate());orders.setOrderTime(sdf.parse(today)); orders.setUid(loginUser.getUid()); orders.setMoney(cart.getTotale()); orderService.toOrder(orders); Map<Integer,CartItem>cartItems=cart.getCartItem(); for(Entry<Integer,CartItem>entry:cartItems.entrySet()){ CartItemcartItem=entry.getValue(); Orderitemorderitem=newOrderitem(); orderitem.setProduct(cartItem.getProduct()); orderitem.setCount(cartItem.getCount()); orderitem.setPid(cartItem.getProduct().getPid()); orderitem.setSubtotal(cartItem.getSubtotle()); orderitem.setOid(orders.getOid()); orders.getOiList().add(orderitem); orderService.toOrderItem(orderitem); } cart.clearCart(); request.getSession().setAttribute("orders",orders); return"order"; }

}留言模块关键代码:@RequestMapping("/saveMessage") publicStringsaveMessage(@RequestParamStringmessageinfo,HttpServletRequestrequest,Modelmodel)throwsException{ MessageMessage=newMessage(); UserloginUser=(User)request.getSession().getAttribute("loginUser"); if(loginUser==null){ model.addAttribute("message","对不起您还没有登录"); return"msg"; } java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Message.setMessage(messageinfo); Message.setUid(loginUser.getUid()); Message.setMessagedate(sdf.format(newDate())); messageService.insertMessage(Message); request.getSession().setAttribute("Message",Message); return"redirect:/messageList.action?page=1"; }}管理员登录关键代码://admin/adminUser_login.action//adminUser_login管理员登录 @RequestMapping("/admin/adminUser_login") publicStringadminUser_login(HttpServletRequestrequest,Modelmodel,@RequestParamStringusername,@RequestParamStringpassword)throwsException{ AdminuseradminuserLogin=userService.adminUser_login(username,password); System.out.println(username); System.out.println(password); if(adminuserLogin==null){ model.addAttribute("message","改用户未被授予管理员身份!"); return"admin/index"; } request.getSession().setAttribute("adminuserLogin",adminuserLogin);// model.addAttribute("adminuserLogin",adminuserLogin); return"admin/home"; }用户管理主要代码如下:@RequestMapping("/admin/admin_findAll") publicStringadmin_findAll(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } List<User>userList=userService.admin_findAll(); model.addAttribute("userList",userList); return"admin/user/list"; } @RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }分类管理关键代码:@RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }商品管理核心代码://admin的商品管理 @RequestMapping("/admin/adminProduct_findAllByPage") publicStringadminProduct_findAllByPage(@RequestParamintpage,Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } PageBean<Product>allProPageBean=productService.findAllProduct(page); model.addAttribute("allProPageBean",allProPageBean); return"admin/product/list"; } @RequestMapping("/admin/adminProduct_addPage") publicStringadminProduct_addPage(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录"); return"admin/index"; } //查询出所有的二级分类 List<Categorysecond>cslist=categorySecondService.findAll(); /*for(Categorysecondcategorysecond:cslist){ System.out.println(categorysecond.getCsname()); }*/ model.addAttribute("cslist",cslist); return"admin/product/add"; }订单管理核心代码:/**订单管理模块**/ @RequestMapping("/admin/adminOrder_findAllByPage") publicStringadminOrder_findAllByPage(@RequestParamintpage,Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","对不起您还没有登录");

温馨提示

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

最新文档

评论

0/150

提交评论