摘 要
随着社会的发展,美食推荐系统的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但美食推荐信息鱼龙混杂,真假难以辨别。为了方便用户更好的获得美食推荐信息,因此,设计一款安全高效的美食推荐系统极为重要。
为设计一个安全便捷,并且使用户更好获取本美食推荐系统信息,本文主要有安全、简洁为理念,实现用户快捷寻找美食推荐信息,从而解决美食推荐信息复杂难辨的问题。该系统以ssm架构技术为基础,采用Java语言和mysql数据库进行开发设计,通过对美食推荐系统业务流程的分析,分析了其功能性和非功能性需求,设计了美食推荐系统,该系统包括管理员和用户两部分。同时还能为用户提供一个方便实用的美食推荐系统,使得用户能够及时地找到合适自己的美食推荐信息。本系统主要功能有首页,个人中心,用户管理,美食店铺管理,热门美食管理,美食教程管理,美食类型管理,美食社区,系统管理等功能。
关键词:美食推荐;ssm;mysql数据库;Java
第2章 关键技术介绍
在开发系统过程中采用Java语言、MySQL数据库存储数据。系统以B/S为基础,实现管理一体化、规范化,为用户提供一个高效快捷的交流平台[5]。利用ssm架构进行编程,具有良好的稳定性与安全性,并且操作简单,易于维护。下面介绍一下关键技术。
2.1 开发环境
本系统使用MyEclipse开发工具。系统使用服务器为Tomcat服务器。系统数据库设计使用MySQL。
2.2 JSP技术介绍
JSP,全称为Java Server Pages,中文为Java服务器页面,是一种技术标准[3],用来实现动态网页制作,其主导开发公司为Sun Microsystems。它是一种开放源码的开发语言,易懂易写,有很多特性和优点。现阶段在Web行业运用普遍。与其它计算机语言对比,JSP的实行关键反映在将程序嵌入到HTML文本文档中,实行效率领先别的语言表达。此外,执行速度也很快。一般来说,它的编译可以让程序执行得比一般语言更快。JSP完全免费、高效率,这促使它被广泛运用于各种各样服务平台。
2.3 MySQL数据库
现在的Web动态系统都是基于数据库的,一直以来,MySQL数据与java技术的组合都备受开发者们的亲赖,MySQL目前属于Oracle甲骨文公司,MySQL称之为关系型数据库[18]。
(1)MySQL是相比与oracle更轻量、更简介便于使用,在服务部署方面相对复杂度低,更利于毕设系统的开发。
(2)MySQL对多数个人用户来说是免费的。
(3)MySQL支持sql语言,学习成本较低[19]。
(4)MySQL可支持互联网数据共享也支持数据安全设置,防止数据泄露。
(5)MySQL运行到各种版本的操作系统中无论是服务器上还是开发用的笔记本上。
2.4 ssm框架
如今时兴的“SSM组合框架”是Spring + SpringMVC + MyBatis的通称,遭受很多人的大力青睐,“组合SSM框架”是强强联手、各尽其责、融洽相辅相成的团队意识。web项目的结构通常是一个更简洁的数据源。Spring属于一个轻量级的反转控制框架(IOC),但它也是面对表层的器皿(AOP)。SpringMVC常常用于控制器的分类工作模式,与模型对象分开,程序对象的作用与自动取款机进行处理。这种解耦全过程使整个系统的个性化变得非常容易。MyBatis是一个非常好的可持续性框架,它适用一般的SQL查看,并可以对存储过程的高端映射开展数据优化。因为大中型Java Web使用的开发成本费太高,开发全过程中的一些问题难以维护保养和处理,反过来“SSM组合框架”,它允许建立业务层次结构,给予了一个有效的处理这个问题的方法。
2.5 B/S架构
B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作[10]。
B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:
(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间[12]。
(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少[13]。
2.6 本章小结
本节作为开发的准备,简要介绍了系统开发所需的开发环境,然后介绍系统开发所需的技术,从而掌握系统开发的总体框架性。
3 系统分析
当用户确定开发一款程序时,是需要遵循下面的顺序进行工作,概括为:系统分析–>系统设计–>系统开发–>系统测试,无论这个过程是否有变更或者迭代,都是按照这样的顺序开展工作的。系统分析就是分析系统需要做什么的问题,主要目的就是确定系统的功能,这也为接下来的工作做了一个好的开端。
3.1 系统可行性分析
开发一款程序软件不仅需要时间,也需要人力,物力资源。而进行可行性分析这个环节就是解决用户这方面的疑问,看看程序在当前的条件下是否可以进行开发。
3.1.1 技术可行性分析
此程序选用的开发语言是Java,这种编程语言有着丰富的数据类型,在指令控制语句上也比较完善,更重要的就是对类与对象的大力支持,这些优点为程序开发者提供了技术保障,尤其是现在代码都逐渐模块化,有关系统功能开发的源码在网络上都公开展示了,所以让具备一定计算机开发基础的开发人员独立开发系统在技术上也逐渐容易。
3.1.2 经济可行性分析
开发此程序最关键的设备就是一台电脑,无论是学校计算机室配备的电脑,还是自己入学以来购置的笔记本,都是可以符合开发要求的设备,另外在网络上,学校本已完全覆盖了校园网,所以在设备以及网络上无须考虑经济问题。
3.1.3 运行可行性分析
随着电脑软件以及配套硬件的完善升级,当下的计算机环境是一片大好,尤其是计算机已经广泛普及到家家户户,所以计算机设备现在是随处可见,由于本次开发的程序占有的资源耗费较小,在一般的电脑或笔记本上都能轻松运转起来。
通过上面的可行性描述,可以从经济,技术,运行方面解决程序开发是否可行的问题。因此可以认为该程序软件是可以进行开发的。
3.2 系统性能分析
系统性能分析也是比较重要的内容,进行系统性能分析就是为了确保系统的功能要能够在生活中运行使用时,达到规定的指标,因此一个完整的系统软件,是需要进行系统的性能分析这个步骤的。本次进行性能分析主要从易用性指标,可扩展性指标,系统健壮性指标,系统安全性指标这几个方面进行分析。
3.2.1 易用性指标
本次程序软件的开发的目的就是让使用者可以通过使用该软件提高信息数据的管理效率,同时该程序软件也需要针对不同的操作用户设置对应的功能,因此,此程序的操作流程应该尽量与用户日常操作软件的行为习惯相贴合,另外,程序软件的设计与开发也应考虑非计算机专业用户的计算机操作水平,要让大部分使用者都可以轻松操作程序提供的各个功能。
3.2.2 可扩展性指标
当前需要开发的程序软件是根据当下的用户需求进行设计开发的,但是随着时间的推移,社会大环境的改变,开发出的程序也是需要与时俱进的,需要根据用户不断变换的需求进行相应的功能内容的扩展,需要注意的就是,当对成型的程序进行功能模块新增时,仍然需要保证程序原有架构以及功能不能受到影响,新增的功能模块在系统中也能够运行正常,该指标达标也就可以保证此程序是可以在满足信息管理要求下,从容应对市场环境的变化。
3.2.3 健壮性指标
程序软件的开发就是为了投入使用时,可以一直稳定的处理各种数据信息,程序软件一旦不稳定,也会给使用者带来干扰。因此从性能分析的角度,就要要求程序软件在应对使用者的误操作,或者是使用者因为各种原因,填写有误的数据等情况时,程序要一直保持稳定,并能够正常让使用者进行使用。当程序的某个功能模块出现异常时,程序的其它功能模块也要能够确保正常使用。程序的健壮性指标达标可以让使用者产生良好的用户体验。
3.2.4 安全性指标
程序软件的安全问题是首要问题,毕竟程序对应数据库里面存放的数据信息是庞大的,里面也包括了许多重要的个人信息,这就对程序要具备一个完善的安全机制提出了要求。因此程序必须要设置登录功能用以进行用户身份的检查,以及身份和权限的匹配,通过对不同用户身份进行功能约束,绝不容忍用户越权操作程序。另外,也需要时刻防范计算机病毒,还有黑客,通过采取针对性的办法进行安全应对,确保程序时刻处于安全的环境,让使用者放心使用。
3.3 系统流程分析
3.3.1 操作流程分析
程序上交给用户进行使用时,需要提供程序的操作流程图(如图3.1所示),这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
3.3.2 登录流程分析
在这个部分,需要对程序的登录功能模块的运行流程(如图3.2所示),进行单独说明。程序设置登录模块也是为了安全起见,让用户使用放心,登录模块主要就是让用户提交登录信息,程序进行数据验证,验证通过的用户才能够成功登录程序。
3.3.3 信息添加流程分析
程序的添加功能就是提供给操作者录入信息的功能,不管是涉及到用户信息添加,还是其它功能模块涉及到的信息添加,程序的信息添加流程(如图3.3所示)都是一致的。程序都是先对操作者录入的数据进行判定,这个判定规则是一段提前编写完成的程序代码,当程序判定数据符合要求时,才会把操作者录入的数据登记在数据表里面,比如添加的用户信息,就会把新添加的用户信息写入用户信息的数据表文件里面。
3.3.4 信息删除流程分析
当从程序里面删除某种无效数据时,遵循程序的信息删除流程(如图3.4所示),先要选中操作者需要删除的数据,程序为了预防操作者误删信息,也会进行提示,当操作者真正确定要删选中的信息时,该信息就会从数据库中被永久删除。
4 系统概要设计
本次拟开发的系统为了节约开发成本,也为了后期在维护和升级上的便利性,打算通过浏览器来实现系统功能界面的展示,让程序软件的主要事务集中在后台的服务器端处理,前端部分只用处理少量的事务逻辑。下面使用一张图(如图4.1所示)来说明程序的工作原理。
1.功能分析
该系统由管理员和用户两部分组成。其中,管理员的主要功能有首页,个人中心,用户管理,美食店铺管理,热门美食管理,美食教程管理,美食类型管理,美食社区,系统管理等功能。
用户的主要功能有首页,美食店铺,热门美食,美食教程,美食社区,美食资讯,个人中心等功能。
2.数据库分析
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
第五章 系统实现
5.1系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到智慧酒店管理系统的导航条。系统首页界面如图5-1所示:
系统注册:在系统注册页面输入用户注册信息进行注册操作;系统注册页面如图如图5-2所示:
美食店铺:在美食店铺页面的输入栏中输入店铺编号,店铺名称和店铺地址进行查询;并根据需要对美食店铺详细信息进行点赞或收藏操作;美食店铺页面如图5-3所示:
个人中心:在个人中心页面通过填写个人详细信息进行信息更新操作,还可以对我的收藏,我的发布进行详细操作;如图5-4所示:
5.2管理员模块实现
管理员登录,在登录页面正确输入用户名和密码后,进入操作系统进行操作;如图5-5所示。
管理员进入主页面,主要功能包括对系统首页,个人中心,用户管理,美食店铺管理,热门美食管理,美食教程管理,美食类型管理,美食社区,系统管理等进行操作。管理员主页面如图5-6所示:
管理员点击用户管理。在用户页面输入账号和姓名进行查询、添加或批量删除用户列表,并根据需要对用户详情信息进行查看、修改或删除操作;如图5-7所示:
管理员点击美食店铺管理。在美食店铺页面输入店铺编号,店铺名称和店铺地址进行查询、添加或批量删除美食店铺列表,并根据需要对美食店铺详情信息进行查看、修改、查看评论或删除操作;如图5-8所示:
管理员点击热门美食管理。在热门美食页面输入美食名称,选择美食类型和美食地点进行查询、添加或批量删除热门美食列表,并根据需要对热门美食详情信息进行查看、查看评论、修改或删除操作;如图5-9所示:
管理员点击美食教程管理。在美食教程页面输入美食名称和选择美食类型进行查询、添加或批量删除美食教程列表,并根据需要对美食教程详情信息进行查看、修改、查看评论或删除操作;如图5-10所示::
管理员点击美食类型管理。在美食类型页面输入美食类型进行查询、添加或批量删除美食类型列表,并根据需要对美食类型详情信息进行修改或删除操作;如图5-11所示:
管理员点击美食社区。在美食社区页面输入贴子标题进行查询或批量删除美食社区列表,并根据需要对美食社区详情信息进行查看、修改或删除操作;如图5-12所示:
管理员点击系统管理。在美食资讯页面输入账号和姓名进行查询、添加或批量删除美食资讯列表,并根据需要对美食资讯详情信息进行查看、修改或删除操作;如图5-13所示:
6 系统测试
程序软件一旦被开发完成之后,在真正投入日常生活中进行运行使用之前,是必须要经历测试这一个重要的操作环节,因为开发期间注重的是每个单独功能模块的开发,尽管每次开发完成一个单独功能模块时,会通过单元测试进行检验,检验合格才会让程序员继续开发下一个子功能模块,以此类推,当程序员完成所有的系统子功能模块的开发时,这个时候就需要引进系统测试,系统测试就是把所有的子功能模块集成到一起,构建成整个系统,在指定的运行环境下进行运行,主要就是测试系统的所有功能模块在一起是否良好运行,一旦程序软件通过了系统测试这一环节,就意味着它可以进行最终的验收测试了,这个测试步骤的操作用户是程序面向的客户或者是最终用户了。
6.1 系统测试的特点
系统测试也是为了保证系统正式上线后,可以稳定正常运行,给使用者带来便利。系统测试也有其对应的特点:
(1)系统测试它包括了端到端的完整测试;
(2)系统测试也对程序软件的架构方面,程序软件的业务需求等方面进行了测试;
(3)系统测试一旦采用正确的方法进行,这将减少程序正式上线之后产生的各种错误;
系统测试一般都是在跟生产环境相似的环境当中运行,程序的功能比如添加功能,删除功能,修改功能等都会使用同样的数据在新系统和现有系统中进行比较,这样做让用户对新系统中的添加,修改,删除等功能能够更好地理解,也能提升用户对新系统的满意度。
说明文档
前台登录页面
http://localhost:8080/项目名称/front/pages/login/login.jsp
后台登录页面
http://localhost:8080/项目名称/jsp/login.jsp
管理员 账户:admin 密码:admin
用户 账户:a1 密码:admin
用户 账户:a2 密码:admin
在src\main\resources\config.properties中编辑
jdbc_url=jdbc:mysql://127.0.0.1:3306/项目名称?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false
jdbc_username=root 数据库用户名 root
jdbc_password=123456 用户密码 123456
图片存放路径: src\main\webapp\upload 里面上传图片名里面不能有中文