Java项目:20 基于SSM实现的支教管理系统

news2024/11/23 15:37:48
作者主页:源码空间codegym

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

文中获取源码

项目介绍

ssm支教管理系统(前台+后台)

前台角色:支教学校+志愿者

支教学校功能模块:支教学校查询+报名职位+发布+已发布列表+已报名列表+评论列表+联系管理员+信息管理

志愿者功能模块:支教学校查询+报名职位+参与职位+我的评价+支教服务时长+信息管理

后台角色:管理员

功能模块:管理员管理+志愿者管理+支教学校管理+志愿者管理+报名审核+职位管理+轮播图设置+评论管理+留言管理

环境:IDEA+jdk1.8+Tomcat9+MySQL5.7+maven3.6.1

技术:ssm+jsp

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

后台框架:springmvc、MyBatis

数据库:MySQL

环境:JDK8、TOMCAT、IDEA

使用说明

1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码地址:http://codegym.top。

运行截图

前端界面

O1CN01tPMWKS28H08diFPgX_!!0-fleamarket.jpg_q50.jpg_

O1CN01yniudB28H08lBMku4_!!0-fleamarket.jpg_q50

O1CN01bAb8La28H08gUYBbP_!!0-fleamarket.jpg_q50

O1CN01jEhmm028H08fNHjMc_!!0-fleamarket.jpg_q50

O1CN01LbjvIX28H08aw3gyI_!!0-fleamarket.jpg_q50

后台界面

O1CN01T3o2jS28H08in7qcT_!!0-fleamarket.jpg_q50

O1CN01ydwzCX28H08hAIDk6_!!0-fleamarket.jpg_q50

O1CN012qTI3O28H08hAJMPN_!!0-fleamarket.jpg_q50

O1CN01ASobLY28H08jI6UzH_!!0-fleamarket.jpg_q50

代码

UsersController

package com.sys.lawyer.controller;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.sys.lawyer.base.BaseController;
import com.sys.lawyer.po.Releases;
import com.sys.lawyer.po.Users;
import com.sys.lawyer.service.UsersService;
import com.sys.lawyer.utils.Base64Img;
import com.sys.lawyer.utils.Pager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * @ClassName:  
 * @Description: 
 * @author  - - admin
 * @date - 2018年10月17日 14时41分30秒
 */


@Controller
@RequestMapping("/users")
public class UsersController extends BaseController {
    
    
    /**
     * 依赖注入 start dao/service/===
     */
    @Autowired
    private UsersService usersService;
    
    /**
     * 【不分页 => 查询列表 => 无条件】
    * @Title: listAll 
    * @Description: TODO(这里用一句话描述这个方法的作用) 
    * @param @return 设定文件 
    * @author
    * @return String 返回类型 
    * @throws
     */
    @RequestMapping(value = "/listAll.json")
    @ResponseBody
    public String listAll(Users users, Integer pageIndex){
       PageHelper.startPage(notEmpty(pageIndex) ? pageIndex : 0, 15);
       Pager<Users> pagers = usersService.findByEntity(users);
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("page", pagers);
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "getUser.json")
    @ResponseBody
    public String getUser(){
       JSONObject jsonObject = new JSONObject();
       if (notEmpty(usersService.getUser())){
          jsonObject.put("user", false);
       } else {
          jsonObject.put("user", false);
       }
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "list.do")
    public String list(Integer role, Model model){
       model.addAttribute("role", role);
       model.addAttribute("user", new JSONObject().toJSONString(usersService.getUser()));
       return "users/list";
    }

    /**
     *  【不分页=》查询列表=>有条件】
    * @Title: listByEntity 
    * @Description: TODO(这里用一句话描述这个方法的作用) 
    * @param @return 设定文件 
    * @author
    * @return String 返回类型 
    * @throws
     */
    @RequestMapping(value = "/listByEntity")
    public String listByEntity(Users users, Model model, HttpServletRequest request, HttpServletResponse response){
       List<Users> listAll = usersService.listAllByEntity(users);
       model.addAttribute("list", listAll);
       return "users/list";
    }

    @RequestMapping(value = "edit.do")
    @ResponseBody
    public String edit(Users users){
       Users users1 = usersService.getByEntity(users);
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("bean", users1);
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "grxx.do")
    @ResponseBody
    public String grxx(){
       Users users1 = usersService.getUser();
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("bean", users1);
       return jsonObject.toJSONString();
    }

    /**
     * 分页查询 返回list对象(通过对象)
     *
     * @return
     */
    @RequestMapping(value = "/findByObj")
    public String findByObj(Users users, Model model) {
       //分页查询
       Pager<Users> pagers = usersService.findByEntity(users);
       model.addAttribute("pagers", pagers);
       //存储查询条件
       model.addAttribute("bean", users);
       return "users/list";
    }

    /**
     * 跳至添加页面
     * @return
     */
    @RequestMapping(value = "/add")
    public String add() {
       return "users/addexcl";
    }

    @RequestMapping(value = "/zc")
    public String zc() {
       return "users/add";
    }

    @RequestMapping(value = "importExcl.do")
    public String importExcl() {
       return "users/addexcl";
    }

    @RequestMapping(value = "/importsave.json")
    @ResponseBody
    public String importsave(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) {
       JSONObject jsonObject = new JSONObject();
       boolean flag = false;
       if (notEmpty(file)){
          flag = usersService.importsave(file);
       }
       jsonObject.put("message", flag ? "提交成功" : "登录名重复或其他数据异常");
       jsonObject.put("flag", flag);
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "/reportExcl.do")
    public void reportExcl(Users users, HttpServletResponse response) {
       usersService.reportExcl(users, response);
    }
    
    /**
     * 添加执行
     * @return
     */
    @RequestMapping(value = "/exAdd")
    public String exAdd(Users users, @RequestParam(value = "file", required = false) MultipartFile file, String openid) throws IOException {
       if (file.getSize() > 0){
          String str = Base64Img.getImgStr(file.getInputStream());
          String type = file.getContentType();
          users.setPhoto("data:" + type + ";base64," + str);
       }
       usersService.insert(users);
       return "redirect:/users/findByObj";
    }

    @RequestMapping(value = "/update.json")
    @ResponseBody
    public String update(Users users, @RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) {
       JSONObject jsonObject = new JSONObject();
       Users user = usersService.getUser();
       Users users1 = usersService.getById(user.getId());
       if (user.getRole() == 1 || user.getRole() == 0){
          if (notEmpty(users)){
             if (notEmpty(users.getId())){
                if (notEmpty(file)){
                   users.setPhoto("/resource/upload/" + saveFile(file, request));
                }
                users.setIsDelete(0);
                usersService.updateById(users);
                if (user.getId() == users.getId()){
                   request.getSession().setAttribute("user", usersService.getById(users.getId()));
                }
             }
             jsonObject.put("message", "提交成功");
             jsonObject.put("flag", true);
          }
       } else if ((user.getRole() > 1) || (notEmpty(users1) && user.getRole() == 1 && users1.getRole() == 0)){
          jsonObject.put("message", "权限不足");
          jsonObject.put("flag", false);
       }
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "/updateGrxx.json")
    @ResponseBody
    public String updateGrxx(Users users, @RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) {
       JSONObject jsonObject = new JSONObject();
       if (notEmpty(users)){
          if (notEmpty(users.getId())){
             if (notEmpty(file)){
                users.setPhoto("/resource/upload/" + saveFile(file, request));
             }
             users.setIsDelete(0);
             usersService.updateById(users);
             request.getSession().setAttribute("user", usersService.getById(users.getId()));
          }
          jsonObject.put("message", "修改成功");
          jsonObject.put("flag", true);
       }
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "/save.json")
    @ResponseBody
    public String save(Users users, @RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) {
       JSONObject jsonObject = new JSONObject();
       Users user = usersService.getUser();
       Users users1 = new Users();
       if (user.getRole() == 1 || user.getRole() == 0){
          if (notEmpty(users)){
             users1.setName(users.getName());
             users1 = usersService.getByEntity(users1);
             if (notEmpty(users1)){
                jsonObject.put("message", "登录名重复");
                jsonObject.put("flag", false);
             } else {
                users.setPhoto("/resource/upload/" + saveFile(file, request));
                users.setIsDelete(0);
                if (notEmpty(users.getId())){
                   usersService.update(users);
                } else {
                   usersService.insert(users);
                }
//              request.getSession().setAttribute("user", users);
                jsonObject.put("message", "提交成功");
                jsonObject.put("flag", true);
             }
          }
       } else {
          jsonObject.put("message", "权限不足");
          jsonObject.put("flag", false);
       }
       return jsonObject.toJSONString();
    }


    /**
     * 删除通过主键
     * @return
     */
    @RequestMapping(value = "delete.json")
    @ResponseBody
    public String delete(Integer id) {
       Users users = usersService.getUser();
       Users users2 = usersService.getById(id);
       JSONObject jsonObject = new JSONObject();
       if (users.getRole() == 0 || users.getRole() == 1){
          if (users.getId() == id){
             jsonObject.put("flag", false);
             jsonObject.put("message", "不能删除自己");
          } else if (users.getRole() ==1 && users2.getRole() == 0){
             jsonObject.put("flag", false);
             jsonObject.put("message", "不能删除超级管理员");
          } else {
             usersService.deleteById(id);
             jsonObject.put("flag", true);
             jsonObject.put("message", "删除成功");
          }
       } else {
          jsonObject.put("flag", false);
          jsonObject.put("message", "本账号无权限删除用户");
       }
       return jsonObject.toJSONString();
    }

    @RequestMapping(value = "sh.json")
    @ResponseBody
    public String sh(Integer id) {
       JSONObject jsonObject = new JSONObject();
       Users users = usersService.getById(id);
       users.setIsSh(1);
       usersService.updateById(users);
       jsonObject.put("flag", true);
       jsonObject.put("message", "审核成功");
       return jsonObject.toJSONString();
    }

    /**
     * 【不分页 => 查询列表 => 无条件】
    * @Title: listAll 
    * @Description: TODO(这里用一句话描述这个方法的作用) 
    * @param @return 设定文件 
    * @author
    * @return String 返回类型 
    * @throws
     */
    @RequestMapping(value = "/listAllJson", method = RequestMethod.POST)
    @ResponseBody
    public String listAllJson(Users users, HttpServletRequest request, HttpServletResponse response){
       List<Users> listAll = usersService.listAll();
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("list", listAll);
       jsonObject.put("obj", users);
       return jsonObject.toString();
    }
    
    /**
     * ajax 添加
     * @param 
     * @return
     */
    @RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
    @ResponseBody
    public String exAddJson(Users users, HttpServletRequest request, HttpServletResponse response) {
       usersService.insert(users);
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("message", "添加成功");
       return jsonObject.toString();
    }
    

    /**
     * ajax 修改
     * @param 
     * @return
     */
    @RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
    @ResponseBody
    public String exUpdateJson(Users users, Model model, HttpServletRequest request, HttpServletResponse response) {
       //1.通过实体类修改,可以多传修改条件
       usersService.update(users);
       //2.通过主键id修改
       //usersService.updateById(users);
       JSONObject jsonObject = new JSONObject();
       jsonObject.put("message", "修改成功");
       return jsonObject.toString();
    }


    @RequestMapping(value = "loginOut.do")
    public String loginOut(HttpServletRequest request){
       request.getSession().removeAttribute("user");
       return "redirect:/web/index.do";
    }

    public String saveFile(@RequestParam(value = "file", required = false) MultipartFile files, HttpServletRequest request) {
       String filePath = "";
       String fileNmae = "";
       if (notEmpty(files)) {
          int pre = (int) System.currentTimeMillis();
          try {
             filePath = request.getRealPath("/resource/upload/");
             File f = new File(filePath);
             if (!f.exists()) {
                f.mkdirs();
             }
             fileNmae = pre + files.getOriginalFilename().replaceAll(" ", "").replace("(", "").replace(")", "");
             File file = new File(filePath + fileNmae);
             if (!file.exists()) {
                file.createNewFile();
             }
             files.transferTo(file);
          } catch (Exception e) {
             e.printStackTrace();
             System.out.println("上传出错");
          }
       }
       return fileNmae;
    }
}

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

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

相关文章

Oracle conn / as sysdba遇到ORA-01031: insufficient privileges错误

背景 oracle 突然挂了&#xff0c;处于锁定状态&#xff0c;然后打算重新启动一下子。 遂 sqlplus /nolog conn / as sysdba 然后就出现了以下错误。。 ORA-01031: insufficient privileges 1.查了一圈&#xff0c;有说是 计算机 》 管理》本地用户和组》组》ORA_DBA&am…

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

一、解决方法 1、首先重新启动Ubuntu系统&#xff0c;然后快速按下shift键&#xff0c;以调出grub启动菜单&#xff0c;如下图所示&#xff1a; 2、在这里我们选择第二个&#xff08;Advance options for Ubuntu&#xff09;&#xff0c;选中后按下Enter键&#xff0c;如下图所…

三维GIS开发的就业前景

一、前言 三维GIS是一个伪概念,GIS是地理信息系统&#xff0c;三维GIS就是三维地理信息系统&#xff0c;在课本上&#xff0c;专业概念上&#xff0c;也没有这一说法吧&#xff0c;所以三维GIS&#xff0c;就是技术人员造概念拼凑造出来的&#xff0c;本质上就是GIS三维可视化…

车载软件架构Adaptive AUTOSAR —— 身份和访问管理和加密技术

车载软件架构Adaptive AUTOSAR —— 身份和访问管理和加密技术 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。…

FreeRTOS学习笔记——(任务调度)

这里写目录标题 一、开启任务调度器&#xff08;熟悉&#xff09;二、启动第一个任务&#xff08;熟悉&#xff09;2.1&#xff0c;prvStartFirstTask ()2.2&#xff0c; vPortSVCHandler () 三、任务切换&#xff08;掌握&#xff09; 一、开启任务调度器&#xff08;熟悉&…

【C++初阶】类和对象(中)

目录 一.类的6个默认成员函数 1.知识引入 ​编辑 2.构造函数 (1)概念 (2)语法特性 (3)特征 ①问题引入1 ②问题引入2 &#xff08;缺少默认构造函数&#xff09; 3.析构函数 (1)概念 (2)特性 4.拷贝构造函数 (1)概念 (2)特征 ①拷贝构造函数是构造函数的一…

css伪类函数 :is()、:where()、:has()、:not()

本文主要描述:is()、:where()、:has()、:not()&#xff0c;四个方法大部分内容相同&#xff0c;首先主要讲:is()方法&#xff0c;并根据:is()方法与:where()、:has()、:not()方法的不同来说明这三种方法的特性 :is() 使用方法 选择器特定性 安全性 伪类和伪元素的支持 :前…

Java 后端面试指南

面试指南 TMD&#xff0c;一个后端为什么要了解那么多的知识&#xff0c;真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效&#xff1a; 不遵循最左匹配原则&#xff1a;在联合索引中&#xff0c;如果没有使用索引的最左前缀&#xff0c;即查询条件中没有包含…

【elasticsearch实战】知识库文件系统检索工具FSCrawler

需求背景 最近有一个需求需要建设一个知识库文档检索系统&#xff0c;这些知识库物料附件的文档居多&#xff0c;有较多文档格式如&#xff1a;PDF, Open Office, MS Office等&#xff0c;需要将这些格式的文件转化成文本格式&#xff0c;写入elasticsearch 的全文检索索引&am…

YOLO-World:实时开放词汇目标检测

paper&#xff1a;https://arxiv.org/pdf/2401.17270.pdf Github&#xff1a;GitHub - AILab-CVC/YOLO-World: Real-Time Open-Vocabulary Object Detection online demo&#xff1a;https://huggingface.co/spaces/stevengrove/YOLO-World 目录 0. 摘要 1. 引言 2. 相关工…

解决docker中运行的jar包连不上数据库

目录 数据库主机地址设置问题&#xff1a; 网络连接问题&#xff1a; 数据库端口映射&#xff1a; 数据库认证问题&#xff1a; 数据库服务是否正常运行&#xff1a; 日志查看&#xff1a; 如果在 Docker 中运行的 JAR 包无法连接到数据库&#xff0c;有几个可能的原因和…

优秀自媒体工作者常用的7款ai写作工具! #AI写作#AI写作

我们做自媒体运营&#xff0c;想要快速的创作内容&#xff0c;提供文章的创作速度是我们的目标&#xff0c;我们别的大佬可以很快地就创作出一篇内容&#xff0c;而自己墨迹半天确出不了一个字呢&#xff1f;其实这关乎到创作技巧&#xff0c;下面小编就跟大家分享如何利用自媒…

Linux的Ubuntu的APT使用

Linux的Ubuntu的APT使用 apt 介绍 apt 是 Advanced Packaging Tool 的简称&#xff0c;是一款安装包管理工具。在 Ubuntu 下&#xff0c;我们可以使用 apt 命令进行软件包的安装、删除、清理等&#xff0c;类似于 Windows 中的软件管理工具。 Ubuntu 软件操作的相关命令 su…

SD-WAN专线:助力企业海外社交媒体推广

随着全球化的发展&#xff0c;越来越多的企业将目光投向海外市场&#xff0c;而在海外市场推广中&#xff0c;社交媒体平台成为了一个重要的推广渠道。然而&#xff0c;很多企业在海外社交媒体推广过程中都会遇到网络问题&#xff0c;传统的VPN解决方案往往存在IP被封、网络不稳…

32单片机基础:GPIO输入

1.1按键控制LED 按键介绍&#xff1a; 两种方式&#xff0c;我们一般用下接的方式。 第一个图&#xff1a;注意点。当按键按下&#xff0c;PA0接地&#xff0c;被置为低电平&#xff0c; 但是一旦按键松手&#xff0c;PA0悬空&#xff0c;引脚电压不确定。所以无论怎么读引脚…

MySQL 核心模块揭秘 | 06 期 | 事务提交之前,binlog 写到哪里?

1. 准备工作 参数配置&#xff1a; binlog_format ROW binlog_rows_query_log_events OFF创建测试表&#xff1a; CREATE TABLE t_binlog (id int unsigned NOT NULL AUTO_INCREMENT,i1 int DEFAULT 0,str1 varchar(32) DEFAULT ,PRIMARY KEY (id) USING BTREE ) ENGINEIn…

使用 Nuxt 构建简单后端接口及数据库数据请求

写在前面 本文主要为大家介绍&#xff0c;如何使用 Nuxt 框架实现一个简单的后端接口&#xff0c;并且从数据库中请求数据返回给前端。 实现 创建 serverMiddleware 文件夹 首先我们新建一个名字为 serverMiddleware 文件夹用来存储接口相关信息 目录结构如下&#xff1a;…

探索 JavaScript ES8 中的函数式编程并通过实例加以实践

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 介绍 函数式编程是一种强大的范式&#xff0c…

【buuctf--outguess】

看题目就知道应该要用到 outguess 这个工具了&#xff0c;具体用处和下载方式请参照这篇博客Outguess下载和使用方法_outguess工具-CSDN博客 下载的 tar 压缩包解压&#xff0c;huhuhu.zip是伪加密的&#xff0c;直接用 binwalk -e 提取一下就可以&#xff0c;也可以修改压缩源…

python游戏代码大全可复制,python基础游戏代码

本篇文章给大家谈谈python游戏编程入门游戏代码&#xff0c;以及python游戏代码大全可复制&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 仅限技术学习参考 分享13个游戏源码&#xff0c;可以自己复现玩玩&#xff0c;研究下里面的编程逻辑&#xff0c;对学…