基于SpringBoot的在线考试系统【建议收藏】

今天分享一个基于springboot+vue在线考试系统。

系统具体介绍如下:

1.技术介绍

核心技术:SpringBoot+mybatis;

前端:vue;

开发工具:idea;

数据库:mysql5.7;

模版引擎:thymeleaf;

安全框架:JWT;

日志:Hutool-log;

数据库连接池:druid;

2.功能介绍

本项目分前台用户界面功能和后台管理功能;

前台用户界面功能:

  • 首页考试列表,展示考试信息及参加考试报名;

  • 公告信息;

  • 新闻信息;

  • 在线留言;

  • 用户登陆

后台管理功能:

  • 管理员登录

  • 系统管理

    • 用户管理
    • 角色管理
    • 菜单管理
  • 课程管理

  • 题目管理

  • 考试管理

  • 试卷管理

  • 报名管理

  • 成绩管理

  • 公告管理

  • 新闻管理

  • 在线留言管理

3.前端

3.1 首页

在这里插入图片描述

3.2 公告信息

在这里插入图片描述

3.3 新闻信息

在这里插入图片描述

3.4 在线留言

![在这里插入图片描述](https://img-blog.csdnimg.cn/c84205f980a64f34aa471076d5799b0c.png

3.5 用户登录

根据不同的角色登录到后台后展示不一样的菜单权限
在这里插入图片描述

4.后端

4.1 主页

在这里插入图片描述

4.2 系统管理

4.2.1 用户管理

在这里插入图片描述

4.2.2 用户管理

在这里插入图片描述

4.2.3 菜单管理

在这里插入图片描述

4.3 课程管理

在这里插入图片描述

4.4 题目管理

在这里插入图片描述

4.5 考试管理

在这里插入图片描述

4.6 试卷管理

在这里插入图片描述

4.7 报名管理

在这里插入图片描述

4.8 成绩管理

在这里插入图片描述

4.9 公告管理

在这里插入图片描述

4.10 新闻管理

在这里插入图片描述

4.11 在线留言管理

在这里插入图片描述

5.核心代码

登录安全验证

public class JwtInterceptor implements HandlerInterceptor {

    @Autowired
    private IUserService userService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        String token = request.getHeader("token");
        if (StrUtil.isBlank(token)) {
            token = request.getParameter("token");
        }
        // 如果不是映射到方法直接通过
        if(handler instanceof HandlerMethod) {
            AuthAccess annotation = ((HandlerMethod) handler).getMethodAnnotation(AuthAccess.class);
            if (annotation != null) {
                return true;
            }
        }
        // 执行认证
        if (StrUtil.isBlank(token)) {
            throw new ServiceException(Constants.CODE_401, "无token,请重新登录");
        }
        // 获取 token 中的 user id
        String userId;
        try {
            userId = JWT.decode(token).getAudience().get(0);
        } catch (JWTDecodeException j) {
            throw new ServiceException(Constants.CODE_401, "token验证失败,请重新登录");
        }
        // 根据token中的userid查询数据库
        User user = userService.getById(userId);
        if (user == null) {
            throw new ServiceException(Constants.CODE_401, "用户不存在,请重新登录");
        }
        // 用户密码加签验证 token
        JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(user.getPassword())).build();
        try {
            jwtVerifier.verify(token); // 验证token
        } catch (JWTVerificationException e) {
            throw new ServiceException(Constants.CODE_401, "token验证失败,请重新登录");
        }
        return true;
    }
}

登录后获取用户对应权限菜单

public UserDTO login(UserDTO userDTO) {
        User one = getUserInfo(userDTO);
        if (one != null) {
            BeanUtil.copyProperties(one, userDTO, true);
            // 设置token
            String token = TokenUtils.genToken(one.getId().toString(), one.getPassword());
            userDTO.setToken(token);

            String role = one.getRole(); // ROLE_ADMIN
            // 设置用户的菜单列表
            List<Menu> roleMenus = getRoleMenus(role);
            userDTO.setMenus(roleMenus);
            return userDTO;
        } else {
            throw new ServiceException(Constants.CODE_600, "用户名或密码错误");
        }
    }

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 基于Spring Boot的在线考试系统是一种基于Web技术的在线考试平台,它可以帮助学生和教师更方便地进行在线考试和评估。该系统使用Spring Boot框架来构建,具有良好的可扩展性和可维护性。它还包括许多功能,如用户管理、试题管理、考试管理、成绩管理等,可以满足不同用户的需求。此外,该系统还具有良好的安全性和稳定性,可以保证考试过程的公正性和可靠性。 ### 回答2: 基于Spring Boot的在线考试系统是一种基于网络技术,为了方便学生和教师在互联网环境下开展练习、测试和评测工作的辅助性系统。该系统利用Spring Boot框架的特点,快速构建了一套完整的在线考试系统,其特点包括以下几个方面。 首先,该系统具有高度的灵活性和可扩展性。Spring Boot框架提供了丰富的组件和模块,使得该系统可以根据用户的需求进行定制和扩展。同时,Spring Boot的自动化配置和默认参数设置,大大降低了系统的开发成本和维护难度。 其次,该系统具有良好的稳定性和复杂性。Spring Boot基于微服务架构,可以将系统的各个模块分开部署,使得系统更加可靠和稳定。同时,Spring Boot提供了多种数据持久化方案,可以支持多种数据库,使得系统具有高度的扩展性和互操作性。 第三,该系统具有良好的安全性和易用性。Spring Boot提供了多种安全机制,支持用户认证、身份验证、授权和加密等功能。同时如果更细粒度的权限控制要求可以使用Spring Security集成。因此,该系统具有很强的安全性和可靠性。同时,该系统的操作界面友好简洁,容易上手,学生和教师可以很方便地进行使用和管理。 最后,该系统还具有很好的响应速度和网络性能。Spring Boot提供了高效的线程池管理机制和缓存技术,使得该系统可以快速响应用户请求,并支持并发操作。 总之,基于Spring Boot搭建的在线考试系统具有灵活性、稳定性、安全性和易用性,可以满足学生和教师在互联网环境下开展练习、测试和评测工作的需要。 ### 回答3: 基于Spring Boot的在线考试系统是一个通过互联网实现在线考试的应用程序。它可以为每个考试设置相应的题目、试卷,提供在线的考试环境和评分系统,从而实现在线考试。 其主要特点包括: 1. 环境简单:Spring Boot基于Java语言开发,环境简单,易于部署、维护和扩展。 2. 界面友好:系统的后台管理界面和考试界面均采用了现代化的前端框架,使得界面友好、操作简单。 3. 数据安全:系统采用一定的安全机制,包括密码加密、登录限制、实时数据备份等,保证数据安全。 4. 稳定可靠:Spring Boot具有良好的容错机制,能够最大限度地减少系统宕机和故障的影响。 5. 灵活性:系统支持多种题型和答题方式,可根据不同考试的需求进行设置和调整。 基于Spring Boot的在线考试系统可以应用于各种考试场景,包括学校、培训机构、招聘面试等。通过在线考试,不仅可以提高考试的效率,同时也可以减少人力、物力资源的浪费,实现考试的智能化、信息化和高效化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值