基于SSM的垃圾分类管理系统的设计与实现 (含源码+sql+视频导入教程+论文)

ops/2024/10/21 7:32:43/

sql_1">👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于SSM的垃圾分类管理系统拥有两种角色:用户和管理员。具体功能如下:
系统功能结构图

1.1 背景描述

  基于SSM的垃圾分类管理系统采用Spring、SpringMVC和MyBatis框架,实现了垃圾分类、回收、统计等核心功能。该系统可便捷地添加、查询和分类垃圾信息,提高垃圾分类效率,促进环保事业。界面简洁,操作方便,可广泛应用于小区、学校等场所。通过该系统,用户可轻松掌握垃圾分类知识,养成良好的垃圾分类习惯,共同构建美好的生活环境。

2、项目技术

后端框架:SSM(Spring、SpringMVC、Mybatis)

前端框架:Bootstrap、html、css、JavaScript、JQuery

2.1 SSM

  SSM(Spring+SpringMVC+MyBatis)是目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。其中,Spring就像是整个项目中的粘合剂,负责装配bean并管理其生命周期,实现控制反转(IoC)的功能。SpringMVC负责拦截用户请求,通过DispatcherServlet将请求匹配到相应的Controller并执行。而MyBatis则是对JDBC的封装,让数据库底层操作变得透明,通过配置文件关联到各实体类的Mapper文件,实现了SQL语句映射。

sql_14">2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8,其它版本理论上可以
  • IDE类型:IDEA、Eclipse、Myeclipse都可以。推荐IDEA与Eclipse
  • tomcat版本:Tomcat 7.x、8.x、9.x、10.x版本均可
  • 数据库版本:MySql 5.5-8.0
  • maven版本:无限制
  • 硬件环境:Windows 或者 Mac OS

4、功能截图+视频演示+文档目录

4.1 登录

登陆

4.2用户 模块

用户-垃圾分类信息

用户-垃圾与运输信息

用户-垃圾站信息

用户-报修信息

用户-投诉信息

  • 垃圾分类信息:用户可以根据垃圾分类名字,查询分类信息
  • 垃圾运输信息:用户可以查看自己小区对应的垃圾运输信息
  • 报修信息:用户可以根据关键词搜索自己报修过的信息,并能够增、删、改
  • 留言信息:用户可以根据关键词搜索自己留言过的信息,并能够增、删、改
  • 垃圾站信息:用户可以根据垃圾站名搜索垃圾站信息

4.3 管理员模块

管理员-垃圾信息管理

管理员-垃圾站管理

管理员-垃圾分类信息管理

管理员-报修管理

管理员-报修状态修改

管理员-小区管理

  • 小区管理:管理员可以根据小区名搜索小区信息,并能增删改查,还能禁止或开启小区账户
  • 垃圾运输信息管理:管理员可以增删改垃圾运输信息
  • 垃圾分类管理:管理员可以根据垃圾分类名搜索,,并能增删改查
  • 垃圾站管理:管理员可以根据垃圾站名搜索,并能增删改查
  • 报修管理:管理员可以根据关键字和小区名(即业主)搜索报修信息,并能修改信息的状态(状态分为“待处理”和“已完成”)
  • 投诉管理:管理员可以根据关键字和小区名(即业主)搜索投诉信息,并能修改信息的状态

4.4 设计文档目录

文档目录

5 、核心代码实现

5.1 配置代码

jdbc.url=jdbc:mysql://localhost:3306/database?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=200212jdbc.initialSize=5
jdbc.maxActive=30jdbc.minPoolSize=2
jdbc.maxIdleTime=30000
jdbc.idleConnectionTestPeriod=100

5.2 其它核心代码

package com.learn.controller;import com.learn.entity.SysUserEntity;
import com.learn.service.SysUserService;
import com.learn.utils.R;
import com.learn.utils.ShiroUtils;import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;/**** 登录相关*/
@Controller
public class SysLoginController {@Autowiredprivate Producer producer;@Autowiredprivate SysUserService sysUserService;@RequestMapping("captcha.jpg")public void captcha(HttpServletResponse response) throws ServletException, IOException {response.setHeader("Cache-Control", "no-store, no-cache");response.setContentType("image/jpeg");//生成文字验证码String text = producer.createText();//生成图片验证码BufferedImage image = producer.createImage(text);//保存到shiro sessionShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);ServletOutputStream out = response.getOutputStream();ImageIO.write(image, "jpg", out);}/*** 登录*/@ResponseBody@RequestMapping(value = "/sys/login", method = RequestMethod.POST)public R login(String username, String password, String captcha) throws IOException {String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);System.out.println("==验证码=="+kaptcha);System.out.println("==password=="+password);System.out.println("==username=="+username);if(!captcha.equalsIgnoreCase(kaptcha)){return R.error("验证码不正确");}if(password==null){return R.error("密码不能为空");}try {Subject subject = ShiroUtils.getSubject();//sha256加密password = new Sha256Hash(password).toHex();System.out.println("==sha256加密==="+password);UsernamePasswordToken token = new UsernamePasswordToken(username, password);subject.login(token);} catch (UnknownAccountException e) {return R.error(e.getMessage());} catch (IncorrectCredentialsException e) {return R.error(e.getMessage());} catch (LockedAccountException e) {return R.error(e.getMessage());} catch (AuthenticationException e) {return R.error("账户验证失败");}return R.ok();}/***/@ResponseBody@RequestMapping(value = "/sys/reg", method = RequestMethod.POST)public R reg(String username, String password, String captcha) throws IOException {
//		String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
//		if(!captcha.equalsIgnoreCase(kaptcha)){
//			return R.error("验证码不正确");
//		}//sha256加密SysUserEntity user = new SysUserEntity();user.setUsername(username);user.setPassword(password);user.setStatus(1);List<Long> roles = new ArrayList<>();roles.add(1L);user.setRoleIdList(roles);this.sysUserService.save(user);return R.ok();}/*** 退出*/@RequestMapping(value = "logout", method = RequestMethod.GET)public String logout() {ShiroUtils.logout();return "redirect:login.html";}}

6 、功能视频演示

基于SSM的垃圾分类管理系统

7 、 获取方式

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:垃圾👇🏻

请添加图片描述


http://www.ppmy.cn/ops/101019.html

相关文章

postman使用指北

粘贴 cURL 请求 环境设置 作用&#xff1a;方便切换不同环境&#xff0c;比如配置本地环境/测试环境/线上环境&#xff0c;通过切换环境就可以请求对应环境的接口 配置环境 切换环境请求 Pre-request Script 可以在发送请求之前执行一些脚本操作 1. 常用指令 // 获取请求方…

centos安装docker、docker-compose

centos安装docker、docker-compose 注意&#xff1a; 使用非root用户安装且用户有sudo权限 卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine …

数据导出为Excel接口报错:java.io.IOException: UT010029: Stream is closed

在Spring框架中&#xff0c;开发过程中经常需要实现数据的导出功能&#xff0c;尤其是将数据导出为Excel文件。然而&#xff0c;在实现这样的功能时&#xff0c;可能会遇到一些意料之外的错误&#xff0c;比如java.io.IOException: UT010029: Stream is closed。本文将基于一个…

性能测试笔记

大多数用户期望网站加载时间3秒内 前端常见的性能优化点 1.静态资源增加缓存 2.静态资源使用CDN和独立域名 3.js压缩&#xff0c;并去掉存在的重复请求 4.js位置后移 5.css依赖减少&#xff0c;同时指定&#xff1b; 6.减少Banner图片个数&#xff0c;同时减小大小&…

整流电路和电源滤波方法

1. 简介 什么是整流电路&#xff1f; 整流电路是一种将交流电&#xff08;AC&#xff09;转换为直流电&#xff08;DC&#xff09;的电路&#xff0c;在电源设计、电子设备中广泛应用。本文将深入探讨整流电路的基本原理、常见类型及其在不同领域中的应用。 为什么整流电路重要…

C#面:ASP.NET MVC 中如何用表单认证?

在 ASP.NET MVC 中&#xff0c;可以使用表单认证来验证用户的身份。 表单认证是一种基于 Cookie 的认证方式&#xff0c;它通过在用户登录成功后生成一个包含用户身份信息的加密 Cookie&#xff0c;并将该 Cookie 发送给客户端保存。 当用户发送请求时&#xff0c;服务器会验…

笔记整理—uboot启动过程(7)malloc初始化与内存环境变量

上一章说到了env环境变量并对前两章有关init_sequence部分做了总结&#xff0c;这一章将要对uboot部分的malloc初始化以及内存环境变量进行相关的说明。 mem_malloc_init是用于初始化uboot堆管理器的。自己维护了一段内存&#xff0c;就可用进行malloc和free的操作了。那么这个…

BP神经网络学习内容分享:多层感知机与神经网络

一、多层感知机 多层感知机&#xff08;MLP, Multilayer Perceptron&#xff09;是一种经典的人工神经网络模型&#xff0c;由多个神经元层组成&#xff0c;广泛应用于各种机器学习任务中。以下将介绍MLP的基本原理、结构与训练方法。 1.多层感知机的基本原理 多层感知机&…