毕业论文Web的外卖系统的设计与实现摘要随着外卖订外卖在高校越来越普及,传统的订外卖给顾客跟外卖店带来不方便,如何使订外卖更快速,更方便已成为众多高校学生关注的问题了。
本外卖订外卖管理系统是针对高校外卖店进行具体的需求分析,采用OOA(面向对象分析)和采用UML工具辅助开发分析,基于S2SH(Struts2+Spring+Hibernate)架构进行设计和开发。
论文主要描述外卖订外卖管理系统的开发流程,分别从需求分析和系统设计、详细设计与系统实现这几个阶段进行描述。
关键词:WEB;订外卖管理系统;S2SH;OOAABSTRACTWith more and more popular in universities order take-out, due to the traditional telephone reservation for customers to bring inconvenience take-away meal, how to make more quickly, more convenient has bee the concern of the students. The take-away meal management system in colleges and universities is the concrete take-away demand analysis, using object-oriented analysis (OOA) and using UML tools to assist in the development, using Struts2-Spring-Hibernate framework to design and development. Thesis mainly describes take-away meal management system process, separately from the demand analysis and system design, detailed design and realization of this system are described several stages.Key words: WEB; meal management system; S2SH; OOA目录第1章绪论11.1 背景11.2 XX工业大学外卖订外卖行业实际情况的分析11.3 外卖订外卖管理系统的可行性分析及其作用11.4 系统简介2第2章外卖系统设计与实现的关键技术32.1 引言32.2 struts2技术介绍32.3 hibernate技术介绍52.4 spring技术介绍52.5 数据源技术介绍72.6 小结7第3章系统需求分析93.1 引言93.2 UML (9)3.3 需求分析93.4 系统功能93.5 小结11第4章系统设计124.1 引言124.2 系统总体结构124.3 系统架构方式124.4 建立数据库表144.4.1 系统信息数据库表设计154.4.2 映射文件的编写164.5 详细设计184.5.1 类设计194.5.2 外卖订外卖系统流程分析214.5.3 时序图分析224.5.4 系统主要界面设计27第5章系统实现305.1 引言305.1 开发工具和环境305.2 环境搭配305.3 编码实现315.3.1 DAO层的编写325.3.2 Service层的编写325.3.3 Web层的编写335.3.4 ajax的应用355.4 小结37结论38参考文献40致41第1章绪论1.1 背景随着社会的不断进步和创新,人们的生活方式也发生了很大的改变,其中外卖和餐饮行业以每年平均22%的速度不断增长,很快成为了中国国民经济中的发展行业最快的之一。
随着人们生活水平的不断提高,在城市中工作人群的步伐也越来越快,有时候根本没有时间自己做饭,这样就促进了外卖行业的发展,在我国大学内餐饮行业中的外卖行业就是发展最为迅速的一个行业,在XX工业大学每年都有几家新的负责外卖的餐厅的的产生。
外卖订外卖也已经成为XX工业大学学生生活中不可或缺的一部分活动了,并且订外卖的方式也随着大学学生们的要求不断提高,不断的创新化和成熟化。
1.2XX工业大学外卖订外卖行业实际情况的分析学生们通过打给外卖餐厅服务员来定外卖是XX工业大学当前使用人数最多的订外卖方式,其中比较大的外卖店有攸县大碗菜、祝家庄、水晶锅等都是采用订外卖方式,但通过订外卖方式存在不少的缺陷和不足,比如:效率和时间的问题、打的费成本问题等等。
对当前XX工业大学外卖订外卖行业的实际情况分析如下:外卖订外卖店铺很多并且菜单丰富,店铺之间一直都在竞争。
外卖店铺很多都是服务员接听客户的并手动记录下外卖的信息,特别是在放学期间,外卖店铺订外卖很多时,很容易发生店铺订外卖打不通的情况。
外卖店铺在接听客户订外卖时,由于客户不熟悉外卖店铺的菜单,在于服务员沟通时会浪费很多的时间,容易造成外卖订外卖占线的情况。
外卖店铺不能及时的获取学生的喜好,容易造成有的菜浪费,有的菜不够的情况。
经过分析XX工业大学的周围的外卖行业的实际情况,很容易发现我国国内大学校园周围的外卖店基本上数都是依靠服务员记录的管理方式,很少外卖店实行外卖订外卖管理的信息化,因此订外卖造成了不少的问题。
1.3 外卖订外卖管理系统的可行性分析及其作用根据以上分析得出传统的依靠打订外卖不仅会造成学生的不方便,另外也对外卖店铺的生意产生了不良影响。
经过分析得出实行订外卖有以下几个缺点:在每天中午和晚上餐厅高峰期间,外卖店铺如果只有一台是不够的,很容易造成占线、餐馆服务员忙不过来、比较仓促、导致双方态度恶劣,引起不必要的麻烦。
学生打一般不知道餐厅有什么菜,所以导致点餐很麻烦,也要浪费很多的时间,如果餐馆去学生发传单,也会造成额外的开销。
学生通过订外卖,总是会产生一定的费用,这个费用也是额外的开销。
通过以上综合的分析,实行打订外卖不仅不会促进外卖行业的发展,反而会成为外卖行业发展的绊脚石,所以实行订外卖管理的信息化是势在必行的,如果外卖管理系统对学生订外卖流程实行信息化管理,不仅给订外卖顾客带来了很大的方便,也会给外卖店铺带来了经济和效率收益。
订外卖管理系统信息化给顾客和外卖店带来了双赢。
对于顾客,不用再担心高峰期打订外卖失败了,顾客可以通过浏览器在在外卖店铺网上浏览相关菜单,还可以添加自己喜欢的菜单,在一定程度上解决了曾经的那种打订外卖造成菜单出错的现象。
也为外卖店铺带来了很大的收益和长远的利益,也能减少外卖店的人力和财力和物力,通过外卖管理系统信息化也能使外卖店能够及时掌握学生客户市场的信息,及时推出新菜系和实行更有效的经营管理策略。
1.4 系统简介基于WEB的外卖系统主要针对的是大学校园的订外卖流程和对订单处理实行信息化而搭建出来的B/S外卖购物平台,学生客户可以通过浏览器上网访问外卖,也可以实现网上浏览菜单和订自己喜欢的菜单到购物车中,外卖店铺服务员通过后台管理登陆该系统实现对订单的处理操作,通过外卖信息化处理给学生客户订外卖带来方便,同时也给外卖店管理人员带来了长远利益。
第2章外卖系统设计与实现的关键技术2.1 引言基于WEB的外卖管理系统的设计与实现选取S2SH架构作为基本设计理念来设计和开发,因为S2SH是SSH的升级版,以前的SSH架构中的用到的MVC框架是struts,而S2SH中的MVC框架用到的是struts2,在Struts框架方面有很大的改进,struts2与struts 在实际配置方面有很大的不同,其中struts2的配置更灵活、开发更加方便,研究人员利用其开发的插件与hibernate和spring都能达到无缝集成,另外本管理系统采用了三层架构,首先用struts2处理的前端,用hibernate封装对数据库的访问操作,使用spring 对struts2、hibernate和业务逻辑层中进行数据对象的管理和连接,struts2、hibernate 和spring三个框架有个字不同的职责,这样分层设计有利于系统项目开发的分工,也能使项目开发达到更高的灵活性和可维护性。
S2SH三层架构如图1.1所示。
图1.1S2SH三层架构图2.2 struts2技术介绍Struts2是目前功能比较完善的Web系统常用的开发框架,Struts2框架是Struts 1.X 的升级和完善的版本,Struts 2框架集合了Struts 1.X框架和WebWork框架功能中的优点。
相对比较Struts 1.X,Struts2在功能上已经有了非常大的改进,首先是取消了ActionForm,其次是降低了框架组件之间的耦合度,Struts 2中的Action部件只是普通的Java类(POJO),使用它可以给模块测试的工作带来了极大的简便。
Struts2也提供了强大的整合能力,支持多种返回结果类型,改进了Struts 1.X的标签库,引入OGNL 表达式和值栈的概念,给开发者带来了更好的体验[1]。
另外从全局功能的角度来看,Struts2在一定程度上是一个pull(拉)功能类型的MVC理论的框架,另外它与传统类型的MVC框架理论的区别方面就在于在Struts2中,在其中Action部件担任的是模型的部分,而不是控制器的部分,虽然它的部分功能仍然有一些重合。
“pull”的动作由视图发起,它直接从Action里拉取所需的数据,而不是另外还需要一个单独的模型对象存在[2]。
图1.2 MVC/Struts2架构图图1.2描述了MVC/Struts2架构中的模型层、视图层和控制器层的流程。
如图所示:控制器层通过Struts2分布Servlet过滤器来实现功能。
模型层在功能上通过Action部件实现,视图层则通过结果类型和结果组合实现。
值栈和OGNL提供了公共的线程和通道,在一定程度上可以使得不同组件之间可以相互的集成。
Struts2框架的可取之处就是使用了Action部件代理,Action代理可以根据系统预先配置好的配置文件,加载一系列的Servlet拦截器。
由拦截器将HttpServletRequest参数解析出来,传入到Action部件当中。
同样,Action部件处理的数据也是通过Servlet拦截器传入HttpServletResponse,然后由HttpServletRequest将数据结果传给用户。
其实,上面的处理过程是典型的AOP 理论的方式,Struts2处理过程模型如图1.3所示。
图1.3 Struts2处理过程模型图2.3 hibernate技术介绍Hibernate是一个优秀的轻量级的ORM框架,开发人员可以通过使用Hibernate框架。