Java项目:基于ssm智能餐厅管理系统

news2025/1/4 18:33:31

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目主要分为服务员、厨师、收银员、经理四种角色;
主要功能包括:
客户可以根据自己的要求去选择菜品,厨师部会收到你点的菜单。你可以看到菜单的时时状况。
工作人员之间可以互相进行内部通讯,及时得到最新信息。经理可以群发通知、消息给每位员工。
系统会对所有菜品进行监视,当有菜品库存缺乏时,系统会自动提醒管理员。

管理员可以查看到餐厅的近期运营状况。包括最近的营业额,各个菜品的销售情况等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+bootstrap

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/DiningRoom 登录
服务员账号/密码: 20144206169/123456
厨师账号/密码:20144206170/123456
经理账号/密码:20144206171/123456

收银账号/密码:20144206172/123456

运行截图

代码相关

登录管理控制器

@Controller
public class LoginController {

	
	@Autowired
	IUserService userService;

	@Autowired
	IDishService dishService;

	@Autowired
	ITradeService tradeService;

	@RequestMapping("/loginCheck")
	public void loginCheck(HttpServletRequest request,
						   HttpServletResponse response) throws ServletException, IOException {
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		String idStr = request.getParameter("id");
		String password = request.getParameter("password");
		String validation = request.getParameter("validation");
		HttpSession session = request.getSession();

		if (idStr == null || password == null || validation == null) {
			response.sendRedirect("index.jsp?message=error");
			return;
		}
		Long id = 1l;
		try {
			id = Long.parseLong(idStr);
		} catch (NumberFormatException e) {
		}
		String result = "0";
		PrintWriter out = response.getWriter();

		User tempUser = userService.getUserById(id);


		String imgStr = (String) session.getAttribute("imgStr");
		if (!imgStr.equalsIgnoreCase(validation)) {
			result = "1";
		}

		if (tempUser!=null && result.equals("0")) {

			if(tempUser.getPassword().equals(MD5Util.string2MD5(password))){

			}
			session.setAttribute("user", tempUser);
			result = "2";
		}

		out.write(result);
		out.close();
	}

	@RequestMapping("/login")
	public ModelAndView login(HttpServletRequest request){

		HttpSession session = request.getSession();
		if (session.getAttribute("user") != null) {
			return new ModelAndView("redirect:toIndexUI.do");
			//response.sendRedirect("mianServlet?method=toIndexUI");
		} else {
			return new ModelAndView("index");
		}
	}

	@RequestMapping("/toIndexUI")
	public ModelAndView toIndexUI(HttpServletRequest request,
						  HttpServletResponse response) throws ServletException, IOException {
		ModelAndView view = new ModelAndView();
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		if (user == null) {
			view.setViewName("index");
			return view;
		}
		List<Dish> page = dishService.getPageBySaleDesc(1,10);
		request.setAttribute("top_sale", page);
		List<Trade> pageTrade = tradeService.getPageList(1, 10);

		request.setAttribute("pageTrade", pageTrade);
		view.setViewName("jsp/main/index");
		return view;
	}

	/**
	 * 功能描述:生成验证码
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	@RequestMapping("/getRadomPic")
	public void getRadomPic(HttpServletRequest request,
							HttpServletResponse response) throws IOException {
		HttpSession session = request.getSession();
		// 千万注意,像此类图片一定禁止浏览器缓存
		response.setIntHeader("expires", 0);
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Pragma", "no-cache");

		response.setHeader("content-type", "image/jpeg");

		Captcha captcha = new ImageUtils(120, 26, 4);// png格式验证码

		captcha.out(response.getOutputStream());

		String imgStr = captcha.getStr();
		session.setAttribute("imgStr", imgStr);

	}
	
	 /**
	  * 功能描述:后台公共跳转页面
	  * @param page
	  * @return
	  */
	 @RequestMapping(value = "/{page}.do", method = RequestMethod.GET)
	   public ModelAndView toPage(@PathVariable String page) {
	    	ModelAndView view = new ModelAndView("/manage/"+page+"");
	        return view;
	    }

}

  如果也想学习本系统,下面领取。回复:217ssm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

23种设计模式的分类和应用场景总结【设计模式】

23种设计模式的分类和应用场景总结【设计模式】设计模式分类创建型模式结构型模式行为型模式设计模式的几种原则应用场景总结各种模式的详细介绍创建型模式设计模式分类 23种设计模式可以分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。 创建型模式 &#x1f34…

(附源码)SSM高考志愿智能选择系统 毕业设计 134565

SSM高考志愿智能选择系统 摘 要 高中教育的普及使得每年高考人数攀升&#xff0c;与此同时&#xff0c;信息不对称会使部分考生处于劣势&#xff0c;造成获录学校或专业性价比不高、报录比偏低、复读率增高、考研热等问题。针对这些情况&#xff0c;本文设计并实现了高考志愿智…

【时钟识别】Hough变换指针式时钟识别【含GUI Matlab源码 2085期】

⛄一、简介 1 仪表示数识别流程 基于刻度准确定位的指针式仪表示数识别方法包括预处理、指针检测、刻度定位、油位计表盘中心拟合与仪表读数计算5个部分。该方法无需预先添加任何表盘信息,算法流程如图2所示。整个流程分为两步且同时进行——第1步,将油位计图像进行灰度化和边…

DPDK技术原理概述

DPDK 基本技术指标准的 DPDK 数据平面开发包和 I/O 转发实现技术&#xff0c;本次将概述该部分的主要技术原理。 1 技术原理与架构 由于采用软件转发和软件交换技术&#xff0c;单服务器内部的转发能力是 NFV 系统的主要性能瓶颈。在各类高速转发的 NFV 应用中&#xff0c;数…

赣货通全球桥接江西制造全球开花,贸易强国供应链出海江西在奋进

“赣货通全球”平台是什么? “赣货通全球”平台是江西制造进入全球供应链的数字贸易平台&#xff0c;平台免费为江西制造打造永不落幕线上国际化“赣品展”。核心的后台功能为企业用户提供大数据获客及营销功能&#xff0c;同时为企业提供贸易全流程的第三方外贸综合服务&…

Ubuntu18.04复现mmdetection3d

文章目录一、环境搭建二、测试demo三、数据预处理四、训练参考一、环境搭建 从零配置深度学习环境参考&#xff1a;ubuntu18.04 AnnacondaCUDA10.2CuDNN7.6.5使用anaconda创建虚拟环境 conda create -n open-mmlab3d python3.8 conda activate open-mmlab3d安装torch 先从官网…

自然语言处理竞赛相关比赛项目、比赛经验、工具、算力平台资源分享

本资源主要收录NLP竞赛经验贴、通用工具、学习资料等&#xff0c;本项目源于2020年7月一次竞赛的经历&#xff0c;当时在找参考资料时遇到了很多困难&#xff0c;包括内容分散、质量不高等。2021年3月开始更新本项目&#xff0c;志在帮助NLPer提升模型性能。2021年6月开放本项目…

大一Web课程设计 基于HTML家乡主题网页项目的设计与实现——中国牡丹之都山东菏泽(6页)

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

MySQL高级【索引概述索引结构】

目录 索引概述 无索引演示&#xff1a;一种表没有索引的查找方式 有索引演示&#xff1a;以二叉树进行演示 索引的优缺点 索引结构 二叉树&#xff1a; B-Tree&#xff08;多路平衡查找树&#xff09; BTree树 Hash数据结构 索引概述 索引它是一种有序的数据结构&…

测开真的是测试工程师的发展终点吗?

前言 在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位&#xff0c;即使是做业务测试&#xff0c;那么你的title也是测开。 所以想聊一聊测开的看法&#xff0c;但不代表这是正确的看法&#xff0c;仅供参考。 没来阿里之前我对测开的看法 一直以为专职…

Docker入门 --- 简单安装及部署

Docker的简单安装及部署 文章目录Docker的简单安装及部署一、Docker概述1. 什么是Docker2. Docker架构3. DockerHub4. Docker运行模式5. Docker和虚拟机的区别二、安装Docker1. 环境准备2. 安装3. 配置镜像加速器三、Docker服务、镜像、容器命令1. 服务(进程)相关命令2. 镜像相…

【大数据处理技术】「#2」Hive数据分析

文章目录操作Hive简单查询分析测试简单指令查询条数统计分析关键字条件查询分析以关键字的存在区间为条件的查询根据用户行为分析用户实时查询分析操作Hive 启动Hive在“hive>”命令提示符状态下执行下面命令&#xff1a; hive> use dbtaobao; # 使用dbtaobao数据库 hi…

1.7 TCP粘包、缺包问题解决

文章目录1、TCP粘包问题1.1、客户端粘包现象1.2、服务端粘包1.3、粘包、缺包解决2、包头设计1、TCP粘包问题 1.1、客户端粘包现象 因为客户端有一个优化算法(Nagle)&#xff0c; send(“abc”); send(“123”); send(“def”); 如果这三次发送非常紧密时间非常短&#xff0c;会…

一、Endnote简介

一、简介 1.Edit-Preference-Libraries&#xff1a;设置默认打开时的操作。&#xff08;默认打开最近一次&#xff09; 2.文献库的建立File-New 生成一个数据库文件和一个文件夹 3.在线数据库搜索 &#xff08;1&#xff09;设置不同的检索字段&#xff1a; &#xff08;2&am…

零基础小白想学Python爬虫,但是不理解原理?5分钟带你理顺思路

很多人私信我&#xff0c;说自己是0基础学习Python&#xff0c;但是学爬虫的时候不太理解这个原理&#xff0c;下面我来给大家分享一下我的对Python爬虫的原理。 首先我们要知道什么是Python爬虫&#xff1f; 我们可以把互联网看成是各种信息的站点及网络设备在一起组成的一…

UG/NX二次开发Siemens官方NXOPEN实例解析—2.1 AssemblyViewer

列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析—2.1 AssemblyViewer 目录 列文章目录 前言 一、知识点提取汇总 二、案例需求分析 1、最终效果图 2、需求分解 三、程序分析 1、源码所在目录 2、主要功能分析 前言 随着工业智能化的不断发展&#xff0c;UG二次开发…

[1]物联网基础知识

前言 学习教程&#xff1a;B站太极创客&#xff0c;原教程采用的开发板为ESP8266&#xff0c;开发环境Arduino 本人使用开发板&#xff1a;ESP32S3&#xff0c;开发环境Vscode中的platformio&#xff0c;框架为Arduino 乐鑫科技&#xff1a;ESPRESSIF 注意&#xff1a;引脚…

机器人开发--CanOpen

机器人开发--CanOpen1 介绍1.1 概述1.2 应用2 历史发展3 协议3.1 协议细节&#xff08;来自CiA文档&#xff09;3.2 协议框架OSI 模型服务COB-IDNMTSYNC紧急事件对象 (EMCY)服务数据对象 (SDO)SDO 下载SDO 上传SDO 加速写传输报文过程数据对象PDO3.3 应用细节&#xff08;伺服电…

基于springboot+mybatis+mysql+layui员工工资管理系统

基于springbootmybatismysqllayui员工工资管理系统一、目的二、需求功能划分系统结构设计软件界面截图三、系统开发配置一、目的 ​ 运用JavaEE企业级系统开发、数据库系统、面向对象技术及UML以及软件需求工程所学专业知识&#xff0c;解决所设定业务领域软件开发中的需求分析…

2021一带一路暨金砖大赛之企业信息系统安全赛项AWD_writeup

更多详情私聊博主 订阅专栏解锁更多~~觉得不错麻烦点个赞~~~ AWD_writeup 主要考点:后门账户、数据库操作、cve漏洞、后门漏洞、自动化攻击 1、解法一 ssh弱口令账户 用户登录后cat /etc/passwd 发现系统存在额外账户 使用msf进行ssh爆破尝试 msfconsole use auxiliary/sca…