ssh框架的绿色厨房美食交流平台的设计与实现(源码)

本文主要介绍了一种基于网络的美食交流平台——绿色厨房。首先介绍了选题的背景——健康饮食越来越受国民重视,以及该课题国内外的研究现状,然后列出了主要运用的开发技术和应用软件。之后,通过对菜谱查询检索、用户交流互动等业务流程的细节分析,得出了系统的可行性分析和功能需求分析。系统设计方面,结合需求分析结果,把握整体设计方向,先设计了系统总体功能及流程图,后设计了数据库模型。最后,按模块分功能的对网站系统进行测试,并列出测试结果。系统采用B/S模式的体系结构,结合Java技术和MySQL数据库,以用户为中心,以中餐食谱为主要内容,实现了集登录注册、菜谱浏览、菜谱收藏、用户关注、评论留言、菜谱发布等功能于一体的美食交流平台。关键字健康饮食;美食交流;Java;用户;中餐食谱Design and Implementation of Green-Kitchen Food Communication Platform Based on SSH FrameworksStudent majoring in computer science and technology Zhao Yu Tutor Ren Shou-gangAbstract: The paper mainly introduces a food communication platform based on network named Green-Kitchen. Above all, the paper introduces the background of the topic, which is the more and more attention of healthy eating by people. Added with the the subject of domestic and foreign research status. Then, the lists of the main technology and application software of the development are introduced. After that, through the analysis of the details of business process such as recipe q *好棒文|www.hbsrm.com +Q: #351916072# 
uery and user interaction, the feasibility analysis and functional requirement analysis of the system are finished. In the fact of system design, the results of demand analysis are added in order to grasp the overall design direction. After designing the overall system functions and flow chart, the database model is made out. Finally, the system is tested by modules, the paper lists the test results. The system uses B/S mode architecture, combined with Java programming language and MySQL database, achieves a food exchange platform with functions of registration, recipe browsing, recipes collection, user attention, comments, Recipes and so on, which is also user- centered and has the main content of Chinese recipes.引言社会的发展带来人民生活质量的不断改善。与此同时,人们越来越关注健康饮食,而健康的饮食为身体健康提供了良好的保障。过去人们认为,只有疾病才是健康的杀手。其实,饮食相关的不良生活习惯才是健康的最大威胁,其对健康的影响远比疾病大。高脂肪饮食、嗜烟酗酒、不充分休息、作息时间不规律等不良习惯,都容易成为健康隐患,直接导致健康状况下降[1]。现代生活中,人们无法避免各种污染对人体造成的伤害。倘若再不注意饮食搭配,患病危险系数的提高就会成为必然。科学饮食结合良好的生活习惯,不但能够加快排出体内毒素,还能阻止细胞癌变,从而维持身体健康的平衡。因此,设计这样一种基于网络的美食交流平台就显得很有必要。一方面,平台提供健康美味的食谱,用户可以借鉴模仿,另一方面,用户之间可以互相交流讨论,达到日常经验分享的效果。1 选题背景1.1 问题的提出 餐饮行业是我国第三产业中传统的服务性产业,近年来始终保持着较为稳定的增长势头。随着行业领域的不断拓宽,餐饮行业的发展质量发生了重大的变化。从基础的果腹需求逐渐转换成追求多元化、定制化,追求健康营养的餐饮服务。互联网技术的发展带来的新媒体形式的崛起,使得美食逐渐和网络社区联合成一种互联网美食经济产业链。作为互联网生活化不可分割的一部分,美食互动网站的设计和运营也成为一种火热的趋势[2]。从用户交流分享的角度来看,美食互动网站的研究对于其推广和商业模式的形成有重大的意义。1.2 国内外研究状况1.2.1 国外研究状况美食互动社区在国内兴起之前,早已在美日等地形成了固定的产业模式。这种模式是一种以美食社区为基础,通过搜索、电子商务、广告投放等形式形成持续的盈利状态[3]。在国外,比较流行的美食社区类网站包括美国的Allrecipes,Yummly,Food52 和日本的 Coodpad。根据 Alexa 的网站排名,上述美食社区网站中 Allrecipes 和 Cookpad 的流量、用户量以及访问量排名最高且接近[4]。其中,日本网站 Cookpad是目前日本最受欢迎的食谱网站之一,已于2009年在东京证交所上市。它主要面向家庭成员提供美食分享社区。经济危机后,美国的Allrecipes 和其他多家面向大众的菜谱网站开始逐渐获得人们的关注和认可,并在原有海量菜谱数据的基础上扩展分享平台,以更生活化的形式迅速发展[5]。作为垂直化食谱搜索引擎的 Yummly 相较于前两者上市时间较晚(2010年8月),但是由于其在功能上的个性化搜索和结合社交网络方面占有优势,访问量及流量排名均迅速上升[6]。1.2.2 国内研究状况随着国外美食互动社区的兴起,国内的美食网站也逐渐发展起来,其中较成熟的有美食杰、豆果、天天美食、菜婆婆等一些具有中国特色的菜谱网站[7]。虽然目前大部分此类网站已专注于提升菜谱的数量和广度,却仍存在不足之处[8]。其一,这些传统的美食网站对于用户的理解和定位还不够清晰,因此功能千篇一律,用户量也很少[9]。其二,这些网站缺乏和用户的互动,内容质量较粗糙且难以令用户产生使用黏性,因此发展也较为缓慢[10][11]。其三,研究表明大多数家庭并不清楚食物的营养成分及适当的搭配方式,且现有的基于健康推荐的服务在计算个人食谱的营养和搭配上缺乏易用性[12]。值得一提的是,近年来国内美食社区开始学习国外美食社区引入社交网络而慢慢转型。例如豆果网采用网络社区的思路,结合广告商,为吸引更多客户同时提升用户的使用黏性做出了努力。1.3 研究目的和内容系统整体主要分为美食秘籍、华山论菜、营养真经、我的宝典四个模块。美食秘籍主要是按菜谱的种类、所用的食材进行分类,提供给用户查询检索。华山论菜则是对菜谱、用户的排行显示。营养真经模块提供一些健康小常识、美食日记等。我的宝典模块则是用户信息,包括收藏的菜谱、上传的菜谱、粉丝与关注、留言和评论。2 开发平台与应用技术2.1 开发平台与环境运行环境PC端浏览器,最佳适配为IE内核浏览器、谷歌浏览器。服务器机型PC机,Apache Tomcat服务器操作系统Windows 7数据库MySQL 操作系统Windows 7开发工具MyEclipse2.2 数据库概述数据库是储存数据的库,它可以依靠数据库系统管理软件来管理、存储,使用数据。MySQL最初由瑞典的MySQL AB公司开发,在2008年被昇阳微系统(Sun Microsystems)收购后,2009年又由甲骨文公司(Oracle)收购。自此,MySQL成为Oracle旗下产品。MySQL 是一个开放源码的关系数据库管理系统。数据被保存在不同的表中,提高了调用速度和使用的灵活性。MySQL使用 SQL 标准语言,通常用于访问数据库。由于速度快、体积小、拥有成本低、源码开放等优点,MySQL一般被用于中小型网站的数据库。其中,社区版的性能卓越,搭配 Apache 和 PHP 即可构成良好的开发环境。本设计根据业务量的特点,选择比较符合本系统特点的数据库MySql。2.2 服务器概述Tomcat 服务器是一个免费的开放源码的轻量级应用Web 应用服务器,由于其性能较稳定、技术先进,并且免费,是开发JSP 的不二选择。一台配置好Apache 服务器的机器可响应HTML的访问请求。实际上,Tomcat 部分是独立运行的Apache 服务器的扩展,因此Tomcat在运行时,它实际上是一个与Apache 相互独立的进程。如果配置正确,Apache 为HTML页面服务, Tomcat 则运行JSP 页面和Servlet。2.3 Web开发技术2.3.1 HTML+CSS+JavaScript 开发技术HTML的全称是Hypertext Marked Language,是一种超文本标记语言。现在开发者越来越多,这门语言也走向了成熟,应用的范围也越来越大,已经成为浏览器的一种标志性语言。它将信息描述成html文件,然后由浏览器解析。CSS是一种使用于网页制作的新技术,它的自定义样式可以帮助html更好地布局。现在的web基本上都结合了CSS,其对于网页的作用之大可想而知。此外,它提高了网页的加载速度,减少了开发者的工作量,使得开发速度变得更快。JavaScript是一种基于对象和事件驱动的脚本语言,具有良好的安全性。它与html、css相结合,增强它们之间的交互。它不需要编译就可通过浏览器的解释器执行。现在的浏览器基本都内置了这种功能。JavaScript由三部分组成ECMAScript定义了基本的语法和一些对象。核心每种Web浏览器都有对ECMAScript标准的实现DOM(Document Object Model)文档对象模型,它是HTML和XML文档的应用程序编程接口。Web浏览器中的DOM把整个页面划分成分层的节点。DOM可以利用自己的API进行调用操作这些节点。BOM(Browser Object Model)浏览器对象模型,它的操作都是以BOM为对象,对html以及css进行操作的。2.3.2 AJAX技术AJAX的全称是Asynchronous Javascript And XML,是一种用于创建交互式应用的网页技术,用于创建快速动态网页,AJAX 的应用程序独立于浏览器和平台。AJAX 可以经由后台与服务器的少量数据交换从而完成网页的异步更新,即不重新加载网页便更新网页的某部分。AJAX 基于下列 Web 标准JavaScript、XML、HTML、CSS。2.4 后端JavaWeb技术 2.4.1 Java语言概述2.4.2 Servlet技术Servlet=Server+Applet,表示小服务程序。Servlet 看起来像是通常的Java程序。Servlet导入特定的属于Java Servlet API的包。由于可以动态地从网络加载,Servlet和Server的关系就如同Applet和Client 一样。但是,由于Servlet运行在Server中,它们并不需要图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。Servlet用于扩展服务器性能,一个Servlet是Java语言当中的一个类。服务器上保存着可以通过“请求-响应”模型来访问的程序。尽管Servlet可对任何类型的请求给出响应,但它一般情况下只用来扩展Web服务器的应用程序。2.4.3 JSP技术 JSP全名为Java Server Pages,即java服务器页面。从根本而言,它是一个简化的Servlet,是一种动态网页技术标准。JSP技术与ASP技术相类似,即通过在传统的网页HTML文件中插入Java程序段和JSP标记,从而生成JSP文件。用JSP开发的Web应用是跨平台的,能在各种操作系统上运行。2.4.4 SSH技术常说的SSH 是指Struts、Hibernate、Spring三大框架,本系统没有采用较为陈旧的Struts,而是运用了与Spring契合度更高,更方便快捷的SpringMVC。SpringMVC属于SpringFrameWork的后续产品,已经融合进Spring Web Flow。Spring 框架为Web应用程序提供了所有功能的 MVC 模块。客户端发送请求后,服务端控制器转发请求并调用用于将请求映射到对应处理器的HandlerMapping类。Hibernate是一个对JDBC进行轻量级对象封装的开放源码的对象映射的框架,是一个全自动的ORM框架。它建立POJO与数据库表的映射关系,可自动生成SQL语句、自动执行。任何使用JDBC的场合都可使用Hibernate,包括Java的客户端程序和Servlet/JSP的Web应用等。Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。主要内容包括控制反转、面向切面、容器。Spring不仅用于整合,还可以被看做是一个企业解决方案级别的框架。经由一种控制反转技术促进低耦合,还允许分离应用的业务逻辑与系统级服务来完成内聚性的开发,提供了面向切面编程的支持。Spring还可以配置简单的组件,使其组合成复杂的应用。3 系统的需求分析3.1 系统需求分析系统主要以用户为中心,以菜谱为主要内容,融合两者之间的联系,实现以交流互动为基础的菜谱信息分享平台。随着健康饮食在日常生活中的作用越来越重大,在线美食互动网站逐渐受到追捧和青睐。因此,系统要在菜谱的丰富性、健康性上有所保障,打造一个使用方便、健康安全、富有特色的美食平台。在菜谱分类这个维度,系统根据前期调研结果和查阅的资料数据,总体把菜谱分为种类和食材两大模块。菜谱种类分为菜系、烹饪方法、口味、菜式、主食、烘焙、厨房工具、场景、人群、美容瘦身、功效、疾病料理、节日时令十三大类,每大类都有具体类别名称。食材分为肉类,水果花茶坚果,蔬菜菌藻药食,鱼虾蟹贝水产,谷类,豆乳蛋类及制品,调味品七大类,每一大类包含多个一级食材,例如肉类包含猪、牛、羊、鸡、鸭等,每个一级食材包含多个二级食材,也就是具体食材,例如猪中包含猪肉、排骨、五花肉、火腿等等。用户可以根据自己的需求,筛选查询想要的菜谱。在用户交流这个维度,系统提供注册登录、收藏菜谱、评论菜谱、互动回复、关注留言等功能,保证信息的共享和交流的通畅。3.2 功能需求分析3.2.1 系统整体功能需求分析本系统中普通用户是主要参与者,网站管理员是次要参与者。网站主要分为美食秘籍、华山论菜、营养真经和我的宝典四个模块。系统整体功能性需求主要从以下几个角度阐述(1)从用户的角度出发,已经注册过账号的用户可以登录系统,没有注册的用户可以注册,注册登陆后进入个人中心页面,可以进行基本的信息修改完善。(2)用户和菜谱的关系方面,首先,用户可以进行菜谱浏览,进入菜谱详细信息页面,查看菜谱用料、制作过程等等。查阅菜谱主要有三种进入方式,一是通过网站的首页的每日推荐模块进入;二是按菜谱种类或食材查询相关菜谱后进入;三是通过华山论菜模块中的菜谱排行进入。已登录用户可以评论菜谱,发表对菜谱的制作方面的疑问或者提出自己意见和建议,对菜谱已有的评论,还可以回复或者补充。如有喜欢的菜谱,已登录用户可以进行收藏,并后续在自己的主页面中“收藏的菜谱”一栏下进行查看。最后,已登录的用户可以发布菜谱,分享自己的制作过程和经验,后续可以在个人主页中“上传的菜谱”下查看。(3)从用户与用户的角度出发,用户之间可以相互关注,相互留言,并在自己的主页中查看自己关注的人,自己的粉丝,以及自己的留言。已登录用户可以访问其他用户的主页,可以查看该用户关注的人,该用户的粉丝和留言,对其留言板上已存在的留言,访问者可以进行回复和补充。查看其他用户主页的途径只有华山论菜模块中食神榜的排行显示。(4)用户可以在营养真经模块查看文章,文章由网站管理员编辑和发布,大多是关于健康饮食的一些生活常识性文章。(5)网站管理员负责编辑和发布主题站内的文章,主要是健康饮食、起居生活方面的知识性文章。另外,网站管理员还需要选择站内热门菜谱,编辑到首页的每日推荐中去。图 3-1 系统总体用例图3.2.2 美食秘籍模块功能需求分析(1)用户点击导航栏上的“美食秘籍”,默认进入菜谱精品推荐页面。菜谱精品推荐页面有第二导航栏,包括精品推荐、菜谱分类、食材分类。(2)用户点击第二导航栏的菜谱种类,可进入全部种类显示页面。所有菜谱从菜系、烹饪方法、口味、菜式、主食、烘焙、厨房工具、场景、人群、美容瘦身、功效、疾病料理、节日时令这十三方面进行二次分类,例如菜系具体分为川菜、湘菜、徽菜、鲁菜、闵菜等等。(3)用户点击第二导航栏的食材分类,可进入食材分类首页面。食材分为肉类,水果花茶坚果,蔬菜菌藻药食,鱼虾蟹贝水产,谷类,豆乳蛋类及制品,调味品七大类,每一大类包含多个一级食材,例如肉类包含猪、牛、羊、鸡、鸭等,每个一级食材包含多个二级食材,也就是具体食材,例如猪中包含猪肉、排骨、五花肉、火腿等等。(4)不论用户点击第二导航栏的哪一个,最终查询并显示出来的菜谱信息,都可以供用户继续点击并进入菜谱详细描述页面,该页面可以显示菜谱的名称、描述、主辅料、制作过程、分类标签以及其他用户对该菜谱的评论内容,如果用户已经登录,也可以在该页面直接评论和收藏,或者进行评论回复。美食秘籍模块用例图如图3-2图 3-2 美食秘籍模块用例图3.2.3 华山论菜模块功能需求分析(1)用户点击导航栏的“华山论菜”,进入华山论菜主页面。该页面展现四个榜单,分别是热门菜谱榜,食神榜,美容减肥榜,儿童食谱榜。每个榜单显示十个元素,并且可以点击查看更多。(2)热门菜谱榜以菜谱的被收藏数和被评论数作为参考,其中被收藏数是第一指标,被评论数是第二指标,降序显示。菜谱榜单都可以进入菜谱详细页面,已登录用户可以评论收藏。(3)食神榜根据用户的活跃度进行排行,上传的菜谱数目是第一指标,用户的粉丝数目是第二指标,降序显示。食神榜可以点击进入用户主页,已登录用户可以关注该食神或留言。(4)美容减肥榜和儿童食谱榜与热门菜谱榜类似,只是添加了一层筛选。美容减肥榜是把菜谱种类中美容瘦身大类不为空的菜谱进行了排行。儿童食谱榜是把菜谱种类中人群大类的值为“婴儿6-8个月”、“婴儿8-10个月”、“婴儿10-12个月”、“幼儿食谱”、“学龄前”、“儿童”的菜谱进行了排行。华山论菜模块用例图如图3-3图 3-3 华山论菜模块用例图3.2.4 营养真经模块功能需求分析(1)用户点击导航栏的“营养真经”,可以进入营养真经的主页面。营养真经模块主要作用是为用户提供健康饮食、生活习惯这些方面的科学常识。该模块分为四大主题,分别是“生活小窍门”,“走到哪吃到哪”,“食·记”,“厨房装备研究院”。每个主题都包含相关的一些文章。(2)每个主题的文章由网站管理员进行编辑和发布,用户在这里只有查阅的权限。每个主题的文章内容都与主题的名字具有一定的相关性,用户可以根据主题和文章标题,决定是否阅览。营养真经模块用例图如图3-4图 3-4 营养真经模块用例图3.2.5 我的宝典模块功能需求分析(1)用户点击导航栏的“我的宝典”后,系统检验该用户是否已经登录,如果没有登录,跳转到登录页面,如果已经登录,跳转到该用户主页。(2)如果用户没有本系统的帐号,可以在登录页面点击新用户注册,进入注册页面,填写个人信息并提交。注册时用户填写用户名后验证是否已经被使用,系统内保证用户名唯一,并作为登录名。(3)如果用户进入用户主页,可以修改自己的信息,退出登录。另外可以查看自己上传的菜谱,自己收藏的菜谱,自己的留言板,以及关注的人和粉丝。(4)在用户主页中,用户还可以发布新的菜谱。跳转到发布菜谱的页面后,用户填写相关信息,包括菜谱名称,菜谱描述,上传菜谱照片,填写菜谱步骤等等,最后提交。发布成功,服务器返回结果,跳出弹窗。(5)如果用户进入的是其他用户的主页,也可以查看该用户上传的菜谱,收藏的菜谱,关注的人和他的粉丝。我的宝典模块用例图如图3-5图 3-5 我的宝典模块用例图3.3 系统用例及活动图活动图是用来阐明了实体为了进行某种业务而进行的操作流程图,这一章节分别展示本系统中各个具体功能模块的活动图。3.3.1 用户注册模块活动图场景名称注册系统帐号参与者用户、网站系统前置条件服务器已启动主事件流(1)用户点击注册新用户按钮,进入用户注册页面(2)用户填写注册表单信息,包括用户名、密码、密码确认、性别和自我描述(3)用户点击提交按钮(4)网站系统确认用户输入是否合法,两次密码是否一致,是否填写完全(5)网站系统确认用户输入用户名是否重名(6)网站系统保存该用户信息扩展事件流(4a)如果用户输入信息不合法或者有信息未填写,系统弹出提示框。(4b)如果用户输入信息合法并且全部填写,进入主事件流(5)(5a)如果用户输入的用户名系统内存在,网页显示错误信息“用户名已存在”,如果用户强制提交,弹出提示框。(5b)如果用户输入的用户系统内不存在,网页显示信息“用户名通过”,提交后进入主事件流(6)后置条件注册成功图 3-6 注册模块活动图3.3.2 用户登录模块活动图场景名称用户登录参与者用户、网站系统前置条件服务器启动主事件流(1)用户进入登录界面(2)用户输入用户名、密码和图片验证码(3)系统前端验证用户名、密码和验证码是否合法,是否填写完全(4)系统验证用户名、密码是否匹配,验证码是否正确扩展事件流(3a)如果用户输入信息合法,进入主事件流(4)(3b)如果用户输入信息不合法或者未输入完全,弹出提示框(4a)如果用户输入的用户名、密码、验证码有错误,返回登录页面,并在页面显示错误信息。(4b)如果用户输入的用户名、密码和验证码均正确,跳转到个人主页后置条件登录成功图 3-7 登录模块活动图3.3.3 用户收藏菜谱模块活动图场景名称菜谱收藏参与者用户、网站系统前置条件服务器启动主事件流(1)用户进入菜谱详细描述页面(2)系统检验该用户是否已经登录(3)系统检验用户是否已经收藏该菜谱(4)用户点击收藏/取消收藏按钮(5)系统再次检验该用户是否已经登录(6)系统执行收藏/取消收藏操作扩展事件流(2a)如果用户没有登录,页面显示收藏按钮,不显示取消收藏按钮(2b)如果用户已经登录,进入主事件流(3)(3a)如果用户已经收藏该菜谱,页面显示取消收藏按钮,不显示收藏按钮(3b)如果用户没有收藏该菜谱,页面显示收藏按钮,不显示取消收藏按钮(5a)如果用户已经登录,进入主事件流(6)(5b)如果用户没有登录,弹出提示框“请先登录”,跳转到登录页面后置条件操作成功图 3-8 收藏菜谱模块活动图3.3.4 关注用户模块活动图场景名称关注用户参与者用户、网站系统前置条件服务器启动主事件流(1)用户进入被关注人的主页面(2)系统检验该用户是否已经登录(3)系统检验用户是否已经关注该主页用户(4)用户点击关注/取消关注按钮(5)系统再次检验该用户是否已经登录(6)系统执行关注/取消关注操作扩展事件流(2a)如果用户没有登录,页面显示关注按钮,不显示取消关注按钮(2b)如果用户已经登录,进入主事件流(3)(3a)如果用户已经关注该主页用户,页面显示取消关注按钮,不显示关注按钮(3b)如果用户没有关注该主页用户,页面显示关注按钮,不显示取消关注按钮(5a)如果用户已经登录,进入主事件流(6)(5b)如果用户没有登录,弹出提示框“请先登录”,跳转到登录页面后置条件操作成功图 3-9 关注用户模块活动图3.3.5 菜谱评论模块活动图场景名称用户评论菜谱参与者用户、网站系统前置条件服务器启动主事件流(1)用户进入菜谱详细描述页面(2)用户在输入栏输入评论内容(3)用户点击评论按钮(4)系统检验输入数据是否为空(5)系统检验用户是否已经登录(6)系统保存评论内容扩展事件流(4a)如果输入的评论内容为空,弹出提示框,取消提交(4b)如果输入的评论不为空,进入主事件流(5)(5a)如果用户没有登录,弹出提示框“请先登录”,并跳转到登录页面(5b)如果用户已经登录,进入主事件流(6)后置条件评论成功图 3-10 菜谱评论模块活动图3.3.6 评论回复模块活动图场景名称菜谱评论回复参与者用户、网站系统前置条件服务器启动主事件流(1)用户进入菜谱详细描述页面(2)用户对想要回复的评论点击右侧的回复按钮(3)用户在指定的输入框中输入回复内容(4)系统检验输入数据是否为空(5)系统检验用户是否已经登录(6)系统保存回复内容扩展事件流(4a)如果输入的回复内容为空,弹出提示框,取消提交(4b)如果输入的评论不为空,进入主事件流(5)(5a)如果用户没有登录,弹出提示框“请先登录”,并跳转到登录页面(5b)如果用户已经登录,进入主事件流(6)后置条件回复成功图 3-11 菜谱评论回复模块活动图3.3.7 菜谱发布模块活动图场景名称菜谱发布参与者用户、网站系统前置条件服务器启动,用户已登录主事件流(1)用户进入个人主页(2)用户点击上方的菜谱发布按钮,跳转到创建菜谱步骤1界面(3)用户填写菜谱名称、菜谱描述、烹饪难度、烹饪时间,并且上传成品图(4)用户点击“进入下一步”按钮(5)系统检验菜谱名称是否为空(6)系统保存该菜谱信息,并进入创建菜谱步骤2界面(7)用户填写菜谱用到的主料辅料名称及用量,菜谱的制作步骤描述,并上传菜·谱制作每一步的图片(8)用户填写菜谱小贴士,以及菜谱的标签。标签用于对菜谱分类,多个标签用空格隔开。(9)用户点击“确认提交”按钮(10)系统保存该菜谱详细信息,包括分步图片,并根据主料辅料、标签生成菜谱食材信息和菜谱种类信息。扩展事件流(5a)如果用户输入的菜谱名称为空,弹出提示框,取消提交。(5b)如果用户输入的菜谱名称不为空,进入主事件流(6)后置条件发布成功图 3-12 菜谱发布模块活动图3.4 系统分析概念类图根据以上需求分析,可以得出系统的概念类图,如图3-13所示。图 3-13 系统概念类图3.5 系统的可行性分析3.5.1 经济可行性随着互联网时代的来临,新兴技术不断深入人们的生活,在线菜谱将逐渐取代纸质菜谱。美食互动平台提供的健康食谱也越来越受烹饪爱好者的喜爱。在菜谱网站上,人们既可发布自己的菜谱,也可查看他人的菜谱,通过相互评论回复交换做菜感受和心得,从而取得厨艺上的进步。因此美食交流平台可以转换成以电子商务为主的营销模式,追求新的发展。这种美食交流平台,不仅能降低风险和成本,还能提高管理的效率,与此同时,更能让用户体会到它的方便快捷之处,展现该平台的良好前景。另一方面,开发本系统只需要一台电脑以及相关软件程序,在开发过程中所花费的也只是开发者的时间与精力,并没有太大的成本开销。相关技术的学习也可以通过上网查询和图书馆查阅资料获得,成本较低。3.5.2 技术可行性目前网络上存在诸多这种在线菜谱平台,有的站点菜谱丰富度、网站用户量已经十分庞大,云端的搜索查询功能也十分方便有效,高并发量的访问控制做的也很好,本系统与之相比,规模要小,成本要低,技术要简易,从这个角度上讲,实现的难度不大。并且,实现本系统运用的技术主要是Java、JSP、Web开发相关的技术,现阶段,这些技术都已经处于非常成熟的状态。因此,实现这样一个在线美食交流平台,技术上是完全可行的。4 系统设计4.1 系统的功能模块设计本系统主要实现的菜谱的收录和管理,以达到用户之间相互分享,相互交流的目的。如上文所述,大体上划分为四个模块美食秘籍、华山论菜、营养真经、我的宝典。各个模块的功能架构如图4-1所示。美食秘籍主要是菜谱的管理,包括精品推荐、菜谱种类分类和菜谱食材分类。华山论菜就是排行榜的汇总,包括热门菜谱榜、食神榜、美容减肥榜和儿童食谱榜。我的宝典则是个人信息模块,包括登录注册、菜谱发布、菜谱收藏查看、粉丝关注和留言。图 4-1 系统的功能架构图4.2 系统面向对象建模本系统采用面向对象的设计方法。因此,在进行系统设计时,要理解面向对象的设计思路,对系统业务逻辑进行分析抽象,建立对象模型、类模型,根据业务流程画出顺序图。在面向对象程序设计方法之上,系统采用了MVC的设计模式。所谓MVC设计模式,是模型(Model)-视图(View)-控制器(Controller)的缩写,是用一种业务逻辑和数据以及界面分离显示的方法组织代码结构,把业务逻辑聚合在一个部件里。因此在进行界面定制和进一步改进时,无需再次编写业务逻辑。本系统中,Controller控制页面的转向,Model负责数据的存储和传输,Controller调用Service服务层方法,以Model作为参数,执行数据库DAO(Date Access Object)操作。4.2.1 菜谱种类查询模块建模用户进入菜谱种类首页,点击感兴趣的种类,分页查看该种类所有菜谱。用户点击后,触发菜谱控制器查询所有相关食谱。根据业务描述,结合MVC设计模式,进行功能模块设计。种类查询模块涉及如下几个类菜谱控制器类、种类服务类、基础服务类、菜谱种类类、菜谱类和用户类。其中,菜谱控制器接收网页端的输入参数,并调用种类服务类中的分页查询种类菜谱方法,该方法调用其父类的查询方法查询数据库,并将查询结果封装成菜谱对象的信息,返回给菜谱控制器。基础服务类是所有服务类的基类。图 4-2 菜谱种类查询类图图 4-3 菜谱种类查询顺序图4.2.2 菜谱食材查询模块建模用户进入食材分类首页,选择感兴趣的食材,浏览该食材的所有菜谱。用户点击后,触发食材控制器查询所有相关食谱。与种类查询类似,食材控制器接收页面段输入参数,调用菜谱食材关系服务类的分页查询某食材菜谱方法,该方法调用其父类基础服务类的查询方法,并将查询结果解析,抽取出其中的所有菜谱类,最终返回给控制器。控制器再将所有菜谱信息返回给页面,从而可以在页面显示。图 4-4 菜谱食材查询类图图 4-5 菜谱食材查询顺序图4.2.3 排行榜模块建模用户点击导航栏的“华山论菜”进入排行榜首页,触发排行控制器工作,查询各个排行榜的内容并在页面展示。排行控制器在页面跳转前,调用种类服务类和用户服务类,查询需要的榜单信息,各服务类调用其父类基础服务类的查询方法,并将查询结果封装成各自的数据传输对象,并返回给控制器。数据对象不止一个,则返回列表或数组。控制器保存返回值,并在排行首页中显示。图 4-6 排行榜模块类图图 4-7 排行榜模块顺序图4.2.4 菜谱发布模块建模已登录用户点击“发布菜谱”按钮,触发发布控制器工作,进入创建菜谱第一步页面,填写表单后提交,进入菜谱发布第二步页面。待所有信息填写完全,确认上传,系统保存该菜谱信息。其中,用户填写完第一步信息后,控制器接收表单参数,并将其保存到新创建的菜谱对象中,并把该对象作为参数传递给菜谱服务类的添加菜谱方法,菜谱服务类调用其父类基础服务类的添加方法,添加菜谱基本信息,返回控制器结果。若添加成功,控制器使页面跳转到菜谱发布第二步页面。用户继续填写菜谱详细信息,提交后,控制器分别接收多个用料、步骤、种类等参数,并将上传的图片保存。为了保存不同的信息,控制器将相应地创建多个用料对象、步骤对象、种类对象,并将其添加到相应的列表中,然后将列表传给各自的服务对象,各自的服务对象调用父类基础服务类的添加方法,保存各个列表中的所有对象。图 4-8 菜谱发布模块类图图 4-9 菜谱发布模块顺序图4.3 数据库物理模型系统采用MySQL数据库。数据库共有14张关系表,分别为菜谱表、菜谱用料表、菜谱步骤表、菜谱种类表、菜谱食材关系表、一级食材表、二级食材表、用户表、菜谱收藏表、关注表、菜谱评论表、评论回复表、用户留言表。其中,菜谱和食材两个实体是多对多的关系,所以添加菜谱食材关系表,将其拆分为两个一对多的关系。用户菜谱两个实体是多对多的关系,所以添加菜谱收藏表将其拆分为两个一对多的关系。图 4-10 数据库物理模型图5 系统实现与测试根据需求分析结果对系统进行功能实现和模块测试。系统编码工作就是实现功能的过程,在对每个模块实现的同时,要密切关注需求分析,和需求分析保持一致,使系统可以正确无误地工作并达到预期效果。5.1 系统功能实现5.1.1 首页功能实现用户访问首页,浏览器显示每日推荐、主题站、时令食材和食神榜四个模块。每日推荐是系统内相对受欢迎的菜谱汇总,达到吸引用户的目的。主题站则是生活科普常识、健康卫生方面的小知识。时令食材列举了热门的食材,用户可以查看这些食材的相关菜谱。食神榜则是热门用户的显示。首页效果图如图5-1、图5-2所示。图 5-1 首页效果图一图 5-2 首页效果图二5.1.2 菜谱种类查询功能实现美食秘籍模块共分为三个子模块精选、菜谱种类和食材分类。用户点击菜谱种类按钮,进入菜谱种类首页后,可以选择感兴趣的种类,查询该种类相关菜谱。效果图如图5-3所示。图 5-3 种类查询效果图5.1.3 菜谱食材查询功能实现用户点击美食秘籍中的食材分类,进入食材主页面后,可以选择感兴趣的食材,查询该食材相关菜谱。效果图如图5-4所示。图 5-4 食材查询效果图5.1.4 排行榜功能实现华山论菜模块共含有四个榜单热门菜谱榜、热门用户榜、美容减肥帮和儿童食谱榜。用户点击导航栏的华山论菜即可进入该榜单首页,详细查看榜单信息可以点击“更多”按钮。效果图如图5-5所示。图 5-5 排行榜效果图5.1.5 主题站功能实现营养真经模块分为四个主题生活小窍门、走到哪吃到哪、食·记和厨房装备研究院。访问这几个主题,可以查看主题站内的文章。效果图如图5-6所示。图 5-6 主题站效果图5.2 系统模块测试5.2.1 注册测试用例网站新用户需要注册账号,填写相关表单内容,系统在存档前会验证数据是否合法,不合法会弹出错误提示框。用户输入用户名后,系统检测其是否已存在,已存在页面显示“用户名存在请更换”,不存在显示“用户名通过”。本用例测试用户注册功能是否达到预期。表 5-1 注册测试用例用例操作结果测试结果注册测试点击登录页面的“新用户注册”,填写表单,点击提交图5-7成功图 5-7 注册测试结果图5.2.2 登录测试用例用户登录,需要填写用户名和密码,验证匹配则登录成功,跳转到个人中心页面,否则失败,显示错误信息。表 5-2 登录测试用例用例操作结果测试结果用户登录输入用户名和密码,后台根据用户名和密码查询用户表,若查询到记录说明密码和用户名正确,跳到个人中心页面,若查询不到则提示用户名或密码错误图5-8成功图 5-8 登录测试结果图5.2.3 菜谱发布测试用例用户发布菜谱一共有两个步骤,第一步填写菜谱名称、菜谱描述等基本信息并上传菜谱成品图,第二步填写菜谱用料、步骤内容并依次上传各步骤图片。上传图片后,网页立即显示预览片。本用例测试菜谱发布功能,验证是否达到预期效果。表 5-3 菜谱发布测试用例用例操作结果测试结果菜谱发布第一步填写菜谱名称、菜谱描述、烹饪时间、烹饪难度,并上传成品图,确认后点击“进入下一步”图5-9成功菜谱发布第二步填写菜谱用料,菜谱步骤,分步上传步骤图片,填写菜谱标签,菜谱小贴士,确认后点击“提交”,返回发布成功图5-10 图5-11成功图 5-9 菜谱发布第一步测试结果图图 5-10 菜谱发布第二步测试结果图图 5-11 菜谱发布返回测试结果图5.2.4 菜谱收藏测试用例用户进入菜谱详细描述页面浏览菜谱信息,对于感兴趣的菜谱,可以点击收藏。如果用户尚未登录,弹出请先登录提示框,已经登录,点击后提示收藏成功。测试收藏功能是否达到预期,能否正确的收藏和取消收藏。表 5-4 菜谱收藏测试用例用例操作结果测试结果未登录菜谱收藏进入菜谱详细页面,未登录状态下点击收藏按钮图5-12成功已登录菜谱收藏进入菜谱详细页面,已登录状态下点击收藏按钮图5-13成功图 5-12 未登录菜谱收藏测试结果图图 5-13 已登录菜谱收藏测试结果图5.2.5 菜谱评论测试用例用户进入菜谱详细描述页面浏览菜谱信息,可以在下方的评论区发表评论,评论内容可以是对菜谱的疑问,也可以是意见或建议。对已有的评论,可以补充回复。未登录状态下,弹出请先登录提示框,已登录状态下弹出评论成功提示框。测试菜谱评论功能,验证是否达到预期,是否能够正确的评论和回复。表 5-4 菜谱评论测试用例用例操作结果测试结果未登录菜谱评论进入菜谱详细页面,未登录状态下填写评论内容并提交图5-14成功已登录菜谱评论进入菜谱详细页面,已登录状态下填写评论内容并提交图5-15成功图 5-14 未登录菜谱评论测试结果图图 5-15 已登录菜谱评论测试结果图5.2.6 用户关注测试用例用户进入其他用户的主页后,可以点击关注按钮,成为该用户的粉丝。关注后,便可在自己的个人中心页面的关注的人中,查看该用户的信息和动态。在未登录状态下点击关注按钮,弹出请先登录提示框,在已登录的状态下,弹出关注成功提示框。测试关注功能,检查是否有异常,是否正确的关注和取消关注。表 5-6 用户关注测试用例用例操作结果测试结果未登录关注进入其他用户个人主页,未登录状态下点击关注按钮图5-16成功已登录关注进入其他用户个人主页,未登录状态下点击关注按钮图5-17成功图 5-16 未登录关注测试结果图图 5-17 已登录关注测试结果图6 总结通过本次毕业设计,我将学习了四年的理论知识付诸实践,能力得到了很大的提升。在深化理论知识的同时也锻炼了自己的实践能力。让我学会如何从整体的角度把握本程序的开发过程。从选题到系统的需求分析,详细设计,测试。这整个过程使我对基于Web开发的系统有了更系统,更深层次的认识。毕业设计的这段日子里,我学习和查阅了与数据库开发和Java Web相关的研究资料,对web开发产生了浓厚的兴趣。在今后的日子里,我会继续努力,技术上更加钻研,不断复习四年里学的各门课程,把理论知识运用到实践中。在今后的工作中,也要勤勤恳恳地不断学习,不断进步。系统实现了在线菜谱网站的基本功能,但是系统的创新性不强,在功能的一些细节地方还不够完善,安全性等级不够高。由于用户数据量不大,所以在性能测试、压力测试中的测试结果不具有参考性。参考文献赵洪亮.舌尖上的美食,你能吃吗[J].家庭医药,2014,07:86-87.沈洁.舌尖上的社交——豆果网网站模式研究[J].新闻世界2014,7:250-252.毛茅.基于社交网络的美食互动网站设计与评估[D].北京:清华大学,2011:2-5.(美)COOPER Alan.交互设计之路一让高科技回归人性[M].北京:电子工业出版社, 2006:20-30.宗英健.基于LBS应用的美食推荐类互联网产品设计[D].扬州:扬州大学,2015:3-7P. Chi, et al., Enabling nutrition-aware cooking in a smart kitchen, 2007, pp. 2333-2338.A. Dix, et al., Human-computer interaction: Prentice hall, 2004,pp. 123-134.高雪芹.美食社区网站的设计与实现[J].计算机光盘软件与应用,2012,20:188-189.李为东.餐饮美食网站的设计[J].科技与企业,2012,23:120.张薇.舌尖上的应用——智能机时代的美食攻略[J].电脑知识与技术,2013,08:5-12.李明生.余味美食网的设计与实现[D].济南:山东大学,2008:1-64.Snae C, Bruckner M .FOODS: a food-oriented ontology-driven system[C]. Proceedings of the IEEE Conference on Digital Ecosystems and Technologies. IEEE,2008: 168-176.
目录
摘要 1
关键字 1
Abstract 1
Keywords 1
1 选题背景 2
1.1 问题的提出 2
1.2 国内外研究状况 2
1.2.1 国外研究状况 2
1.2.2 国内研究状况 2
1.3 研究目的和内容 2
2 开发平台与应用技术 3
2.1 开发平台与环境 3
2.2 数据库概述 3
2.2 服务器概述 3
2.3 Web开发技术 3
2.3.1 HTML+CSS+JavaScript 开发技术 3
2.3.2 AJAX技术 3
2.4 后端JavaWeb技术 4
2.4.1 Java语言概述 4
2.4.2 Servlet技术 4
2.4.3 JSP技术 4
2.4.4 SSH技术 4
3 系统的需求分析 4
3.1 系统需求分析 4
3.2 功能需求分析 5
3.2.1 系统整体功能需求分析 5
3.2.2 美食秘籍模块功能需求分析 6
3.2.3 华山论菜模块功能需求分析 7
3.2.4 营养真经模块功能需求分析 7
3.2.5 我的宝典模块功能需求分析 8
3.3 系统用例及活动图 9
3.3.1 用户注册模块活动图 9
3.3.2 用户登录模块活动图 10
3.3.3 用户收藏菜谱模块活动图 10
3.3.4 关注用户模块活动图 12
3.3.5 菜谱评论模块活动图 13
3.3.6 评论回复模块活动图 13
3.3.7 菜谱发布模块活动图 14
3.4 系统分析概念类图 16
3.5 系统的可行性分析 16
3.5.1 经济可行性 16
3.5.2 技术可行性 16
4 系统设计 16
4.1 系统的功能模块设计 16
4.2 系统面向对象建模 17
4.2.1 菜谱种类查询模块建模 17
4.2.2 菜谱食材查询模块建模 18
4.2.3 排行榜模块建模 19
4.2.4 菜谱发布模块建模 21
4.3 数据库物理模型 22
5 系统实现与测试 23
5.1 系统功能实现 23
5.1.1 首页功能实现 23
5.1.2 菜谱种类查询功能实现 24
5.1.3 菜谱食材查询功能实现 24
5.1.4 排行榜功能实现 25
5.1.5 主题站功能实现 26
5.2 系统模块测试 26
5.2.1 注册测试用例 26
5.2.2 登录测试用例 27
5.2.3 菜谱发布测试用例 27
5.2.4 菜谱收藏测试用例 29
5.2.5 菜谱评论测试用例 30
5.2.6 用户关注测试用例 31
6 总结 32
参考文献: 32
基于SSH框架的绿色厨房美食交流平台的设计与实现
引言

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/1747.html

好棒文