基于Java+SpringBoot+Vue的大学生考勤系统的设计与实现(亮点:多角色、打卡签到、请假审批、上传成绩单文件、统计图展示)

简介: 基于Java+SpringBoot+Vue的大学生考勤系统的设计与实现(亮点:多角色、打卡签到、请假审批、上传成绩单文件、统计图展示)

开发环境与技术


3.1 MySQL数据库

本课题研究研发的应用程序在数据操作过程中是难以预测的,而且常常产生变化。没有办法直接从word里写数据,这不但不安全,并且难以实现应用程序的功能。想要实现运用所需要的数据存放功能,就必定要选择专业的数据库存储软件。大部分,应用程序达到的功能并不太繁杂,市场中所有关系数据库手机软件都能实现。参照自己的思维构造及使用习惯性,MySQL能够支持中小型系统软件,不用Oracle、SQL Server 大中小型数据适用,适宜大家全面的数据库,而非其他问题,由于真正意义上的系统在线,是数据库网络服务器,网站服务器。


3.2 Vue前端技术

在动态网站盛行之时,Java作为一种高级编程语言,当然不会轻易放弃这一领域的生日蛋糕。Sun企业上线了Servlet做为导出动态网站的标准规范。因为当时程序猿不是很喜欢,但一开始挑选很少。java语言在之后的好多个月里出现,不顾及性能高效率,最少区别了写网页页面所需要的动态性编码块和静态代码块,大大提升了创作效率易读性。因而,许多Java软件工程师和入行的初级程序员都会选择java语言当作个人职业生涯发展前景。为保持Java语言在高级编程语言中的重要性,避免java再次抢占市场,Sun与Apache慈善基金会协作,开发了一种有关Java动态网站的技术规范,即vue技术性。vue在页面写作时吸取java语言中的所有优势,却也靠着Java语言 EE庞大环境能通过Java组件完成很多作用。这种组件能够直接引用到vue页面,使vue更强大和完善。确保了Java科技的竖向可持续发展观,最终在动态网站开发行业占有一席之地。别的java开发工作人员能够快速转移到vue开展开发,不顾及一些特殊组件或功能性的开发,自打动态性页面的开发来说,彻底完成了java流程和vue流程的基本无成本费变换,vue技术性就是这样发展趋势起来。


3.3 Spring Boot框架

从取名上能够得知这一框架设计初心:快速开启Spring运用。因而,Spring。 实质上,Boot应用程序是一个根据Spring框架的应用程序。这是Spring“协议书先于配置”理论的良好实践物质。可以帮助开发者迅速、更有效地搭建根据Spring生态系统中的应用程序。

Spring Boot实现自动配置、发展依靠、Actuator、命令行界面(CLI) 是Spring Boot最主要的四个核心特点,在其中CLI是Spring Boot的能选特点尽管功能齐全,却也引入了一套非传统的开发模型,因此本系列文章只注重别的三个特点。如标题,本问题是本系列的第一部分,将为您开启Spring Boot大门,关键为您进一步分析启动过程及全自动配置完成基本原理。把握这一部分主要内容,了解一些Spring框架的基本知识,也会让你游刃有余。


3.4 微信小程序

微信小程序是一种轻量级的应用程序,可以在微信内部直接运行,无需下载安装,为用户提供快速便捷的服务和功能体验,涵盖了各种领域的应用,从社交、娱乐到商务和生活服务,为开发者提供了一个强大的平台,以低成本和高效率开发和发布小程序。


功能设计


4.1 主要功能描述

管理员功能结构见下图:


系统实现


5.1 学生功能展示

5.1.1 成绩系统

这里学生可以下载自己的成绩附件

5.1.2 学生考勤管理

学生在这里可以查看自己的打卡信息

5.1.3 学生请假

学生在后台发起请假请求,老师进行审批

5.2 老师功能展示

5.2.1 成绩上传发布(可上传任意文件,如成绩、个人信息、简历)

5.2.2 学生考勤审核

5.2.3 学生请假统计(可实现统计图切换)

5.3 管理员功能展示

5.3.1 所有数据的CRUD

5.3.2 管理老师账户

5.3.3 管理学生账户(可生成班级报表)


数据库设计参考


-- MySQL dump 10.13  Distrib 5.7.31, for Linux (x86_64)
--
-- Host: localhost    Database: springbootm3ord
-- ------------------------------------------------------
-- Server version 5.7.31
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `springbootm3ord`
--
/*!40000 DROP DATABASE IF EXISTS `springbootm3ord`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springbootm3ord` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `springbootm3ord`;
--
-- Table structure for table `aboutus`
--
DROP TABLE IF EXISTS `aboutus`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aboutus` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
  `content` longtext NOT NULL COMMENT '内容',
  `picture1` longtext COMMENT '图片1',
  `picture2` longtext COMMENT '图片2',
  `picture3` longtext COMMENT '图片3',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `aboutus`
--
LOCK TABLES `aboutus` WRITE;
/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;
INSERT INTO `aboutus` VALUES (1,'2023-03-05 09:51:25','关于我们','ABOUT US','不管你想要怎样的生活,你都要去努力争取,不多尝试一些事情怎么知道自己适合什么、不适合什么呢?\n你说你喜欢读书,让我给你列书单,你还问我哪里有那么多时间看书;你说自己梦想的职业是广告文案,问我如何成为一个文案,应该具备哪些素质;你说你计划晨跑,但总是因为学习、工作辛苦或者身体不舒服第二天起不了床;你说你一直梦想一个人去长途旅行,但是没钱,父母觉得危险。其实,我已经厌倦了你这样说说而已的把戏,我觉得就算我告诉你如何去做,你也不会照做,因为你根本什么都不做。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');
/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `config`
--
DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `config`
--
LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg'),(2,'picture2','upload/picture2.jpg'),(3,'picture3','upload/picture3.jpg');
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `discussjiaoyuan`
--
DROP TABLE IF EXISTS `discussjiaoyuan`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discussjiaoyuan` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `refid` bigint(20) NOT NULL COMMENT '关联表id',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `avatarurl` longtext COMMENT '头像',
  `nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
  `content` longtext NOT NULL COMMENT '评论内容',
  `reply` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教员评论表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `discussjiaoyuan`
--
LOCK TABLES `discussjiaoyuan` WRITE;
/*!40000 ALTER TABLE `discussjiaoyuan` DISABLE KEYS */;
/*!40000 ALTER TABLE `discussjiaoyuan` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `discusszhaopinxinxi`
--
DROP TABLE IF EXISTS `discusszhaopinxinxi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discusszhaopinxinxi` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `refid` bigint(20) NOT NULL COMMENT '关联表id',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `avatarurl` longtext COMMENT '头像',
  `nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
  `content` longtext NOT NULL COMMENT '评论内容',
  `reply` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='招聘信息评论表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `discusszhaopinxinxi`
--
LOCK TABLES `discusszhaopinxinxi` WRITE;
/*!40000 ALTER TABLE `discusszhaopinxinxi` DISABLE KEYS */;
/*!40000 ALTER TABLE `discusszhaopinxinxi` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `jiajiaoshenqing`
--
DROP TABLE IF EXISTS `jiajiaoshenqing`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiajiaoshenqing` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `shenqingbianhao` varchar(200) DEFAULT NULL COMMENT '申请编号',
  `gonghao` varchar(200) DEFAULT NULL COMMENT '工号',
  `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教师姓名',
  `shoukezhuanye` varchar(200) DEFAULT NULL COMMENT '授课专业',
  `xueli` varchar(200) DEFAULT NULL COMMENT '学历',
  `jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT '家教费用',
  `shenqingriqi` date DEFAULT NULL COMMENT '申请日期',
  `shenqingneirong` longtext COMMENT '申请内容',
  `zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
  `xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `shoujihaoma` varchar(200) DEFAULT NULL COMMENT '手机号码',
  `sfsh` varchar(200) DEFAULT '待审核' COMMENT '是否审核',
  `shhf` longtext COMMENT '审核回复',
  PRIMARY KEY (`id`),
  UNIQUE KEY `shenqingbianhao` (`shenqingbianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT='家教申请';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `jiajiaoshenqing`
--
LOCK TABLES `jiajiaoshenqing` WRITE;
/*!40000 ALTER TABLE `jiajiaoshenqing` DISABLE KEYS */;
INSERT INTO `jiajiaoshenqing` VALUES (51,'2023-03-05 09:51:24','1111111111','工号1','教师姓名1','授课专业1','学历1','家教费用1','2023-03-05','申请内容1','账号1','姓名1','手机号码1','是',''),(52,'2023-03-05 09:51:24','2222222222','工号2','教师姓名2','授课专业2','学历2','家教费用2','2023-03-05','申请内容2','账号2','姓名2','手机号码2','是',''),(53,'2023-03-05 09:51:24','3333333333','工号3','教师姓名3','授课专业3','学历3','家教费用3','2023-03-05','申请内容3','账号3','姓名3','手机号码3','是',''),(54,'2023-03-05 09:51:24','4444444444','工号4','教师姓名4','授课专业4','学历4','家教费用4','2023-03-05','申请内容4','账号4','姓名4','手机号码4','是',''),(55,'2023-03-05 09:51:24','5555555555','工号5','教师姓名5','授课专业5','学历5','家教费用5','2023-03-05','申请内容5','账号5','姓名5','手机号码5','是',''),(56,'2023-03-05 09:51:24','6666666666','工号6','教师姓名6','授课专业6','学历6','家教费用6','2023-03-05','申请内容6','账号6','姓名6','手机号码6','是',''),(57,'2023-03-05 09:51:24','7777777777','工号7','教师姓名7','授课专业7','学历7','家教费用7','2023-03-05','申请内容7','账号7','姓名7','手机号码7','是',''),(58,'2023-03-05 09:51:24','8888888888','工号8','教师姓名8','授课专业8','学历8','家教费用8','2023-03-05','申请内容8','账号8','姓名8','手机号码8','是','');
/*!40000 ALTER TABLE `jiajiaoshenqing` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `jiaoyuan`
--
DROP TABLE IF EXISTS `jiaoyuan`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiaoyuan` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gonghao` varchar(200) NOT NULL COMMENT '工号',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `jiaoshixingming` varchar(200) NOT NULL COMMENT '教师姓名',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',
  `lianxishouji` varchar(200) DEFAULT NULL COMMENT '联系手机',
  `shoukezhuanye` varchar(200) DEFAULT NULL COMMENT '授课专业',
  `xueli` varchar(200) DEFAULT NULL COMMENT '学历',
  `touxiang` longtext COMMENT '头像',
  `jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT '家教费用',
  `gerenjianjie` longtext COMMENT '个人简介',
  `rongyuxinxi` longtext COMMENT '荣誉信息',
  PRIMARY KEY (`id`),
  UNIQUE KEY `gonghao` (`gonghao`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='教员';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `jiaoyuanfankui`
--
DROP TABLE IF EXISTS `jiaoyuanfankui`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiaoyuanfankui` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fankuibianhao` varchar(200) DEFAULT NULL COMMENT '反馈编号',
  `fankuibiaoti` varchar(200) NOT NULL COMMENT '反馈标题',
  `fankuineirong` longtext COMMENT '反馈内容',
  `fankuishijian` datetime DEFAULT NULL COMMENT '反馈时间',
  `gonghao` varchar(200) DEFAULT NULL COMMENT '工号',
  `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教师姓名',
  `shhf` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`),
  UNIQUE KEY `fankuibianhao` (`fankuibianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 COMMENT='教员反馈';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `jiaoyuanfankui`
--
LOCK TABLES `jiaoyuanfankui` WRITE;
/*!40000 ALTER TABLE `jiaoyuanfankui` DISABLE KEYS */;
INSERT INTO `jiaoyuanfankui` VALUES (111,'2023-03-05 09:51:25','1111111111','反馈标题1','反馈内容1','2023-03-05 17:51:25','工号1','教师姓名1',''),(112,'2023-03-05 09:51:25','2222222222','反馈标题2','反馈内容2','2023-03-05 17:51:25','工号2','教师姓名2',''),(113,'2023-03-05 09:51:25','3333333333','反馈标题3','反馈内容3','2023-03-05 17:51:25','工号3','教师姓名3',''),(114,'2023-03-05 09:51:25','4444444444','反馈标题4','反馈内容4','2023-03-05 17:51:25','工号4','教师姓名4',''),(115,'2023-03-05 09:51:25','5555555555','反馈标题5','反馈内容5','2023-03-05 17:51:25','工号5','教师姓名5',''),(116,'2023-03-05 09:51:25','6666666666','反馈标题6','反馈内容6','2023-03-05 17:51:25','工号6','教师姓名6',''),(117,'2023-03-05 09:51:25','7777777777','反馈标题7','反馈内容7','2023-03-05 17:51:25','工号7','教师姓名7',''),(118,'2023-03-05 09:51:25','8888888888','反馈标题8','反馈内容8','2023-03-05 17:51:25','工号8','教师姓名8','');
/*!40000 ALTER TABLE `jiaoyuanfankui` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `ketijiangjie`
--
DROP TABLE IF EXISTS `ketijiangjie`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `ketijiangjie` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gonghao` varchar(200) DEFAULT NULL COMMENT '工号',
  `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT '教师姓名',
  `xueli` varchar(200) DEFAULT NULL COMMENT '学历',
  `yuyueshijian` varchar(200) NOT NULL COMMENT '预约时间',
  `ketimingcheng` varchar(200) DEFAULT NULL COMMENT '课题名称',
  `jiangjieshipin` longtext COMMENT '讲解视频',
  `dizhi` varchar(200) DEFAULT NULL COMMENT '地址',
  `zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
  `xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `shoujihaoma` varchar(200) DEFAULT NULL COMMENT '手机号码',
  `neirong` longtext COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='课题讲解';
/*!40101 SET character_set_client = @saved_cs_client */;


代码参考


@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
   UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
   if(user==null || !user.getPassword().equals(password)) {
      return R.error("账号或密码不正确");
   }
   String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
   return R.ok().put("token", token);
}
  @Override
  public String generateToken(Long userid,String username, String tableName, String role) {
    TokenEntity tokenEntity = this.selectOne(new EntityWrapper<TokenEntity>().eq("userid", userid).eq("role", role));
    String token = CommonUtil.getRandomString(32);
    Calendar cal = Calendar.getInstance();   
      cal.setTime(new Date());   
      cal.add(Calendar.HOUR_OF_DAY, 1);
    if(tokenEntity!=null) {
      tokenEntity.setToken(token);
      tokenEntity.setExpiratedtime(cal.getTime());
      this.updateById(tokenEntity);
    } else {
      this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime()));
    }
    return token;
  }
/**
 * 权限(Token)验证
 */
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
    public static final String LOGIN_TOKEN_KEY = "Token";
    @Autowired
    private TokenService tokenService;
  @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    //支持跨域请求
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
  // 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态
  if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
          response.setStatus(HttpStatus.OK.value());
            return false;
        }
        IgnoreAuth annotation;
        if (handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
        } else {
            return true;
        }
        //从header中获取token
        String token = request.getHeader(LOGIN_TOKEN_KEY);
        /**
         * 不需要验证权限的方法直接放过
         */
        if(annotation!=null) {
          return true;
        }
        TokenEntity tokenEntity = null;
        if(StringUtils.isNotBlank(token)) {
          tokenEntity = tokenService.getTokenEntity(token);
        }
        if(tokenEntity != null) {
          request.getSession().setAttribute("userId", tokenEntity.getUserid());
          request.getSession().setAttribute("role", tokenEntity.getRole());
          request.getSession().setAttribute("tableName", tokenEntity.getTablename());
          request.getSession().setAttribute("username", tokenEntity.getUsername());
          return true;
        }
    PrintWriter writer = null;
    response.setCharacterEncoding("UTF-8");
    response.setContentType("application/json; charset=utf-8");
    try {
        writer = response.getWriter();
        writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
    } finally {
        if(writer != null){
            writer.close();
        }
    }
//        throw new EIException("请先登录", 401);
    return false;
    }
}
相关文章
|
17天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
103 1
|
1天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
77 62
|
2天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
11天前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
39 4
|
11天前
|
前端开发 Java Apache
SpringBoot实现电子文件签字+合同系统!
【10月更文挑战第15天】 在现代企业运营中,合同管理和电子文件签字成为了日常活动中不可或缺的一部分。随着技术的发展,电子合同系统因其高效性、安全性和环保性,逐渐取代了传统的纸质合同。本文将详细介绍如何使用SpringBoot框架实现一个电子文件签字和合同管理系统。
30 1
|
14天前
|
文字识别 安全 Java
SpringBoot3.x和OCR构建车牌识别系统
本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。
|
18天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第8天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建并配置 Spring Boot 项目,实现后端 API 和安全配置。接着,使用 Ant Design Pro Vue 脚手架创建前端项目,配置动态路由和菜单,并创建相应的页面组件。最后,通过具体实践心得,分享了版本兼容性、安全性、性能调优等注意事项,帮助读者快速搭建高效且易维护的应用框架。
25 3
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
118 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
172 1
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
168 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统