基于Java实现考试管理系统

2023-01-21 0 1,402

目录

项目简述

本系统功能包括:

支持单选题多选题判断题支持学生(student)、教师(teacher)、管理员(admin)三种角色学生:参加考试和查看我的考试教师:学生的所有权限+创建/编辑题目+创建/编辑考试管理员:教师的所有权限+管理用户。

项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术

Springboot + Maven + Jpa+ Vue 等等组成,B/S模式 + Maven管理等等。

效果图展示

基于Java实现考试管理系统

基于Java实现考试管理系统

基于Java实现考试管理系统

基于Java实现考试管理系统

基于Java实现考试管理系统

主要代码

登录控制层:

@RestController
public class LoginController {
 
    @Resource(name = \"loginService\")
    private ILoginService loginService;
 
    /**
     * 用户登录调用 在登陆成功生成两个token 同时返回各自首页
     * * 学生 student/student
     * * 老师 teacher/teacher
     * * 管理员 admin/admin
     */
    @RequestMapping(value = \"/login/login\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<Token> login(HttpRequest request) {
        return loginService.login(request.getString(\"login_name\"), request.getString(\"pwd\"));
    }
 
    /**
     * 登录检查
     */
    @RequestMapping(value = \"/login/check\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<Token> check() {
        return new Result<>();
    }
 
    /**
     * token 续约
     */
    @RequestMapping(value = \"/login/refresh\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<Token> refresh(HttpRequest request) {
        String refreshToken = request.getString(\"refresh_token\");
        String urlId = request.getString(\"url_id\");
        Token token = TokenCache.getInstance().get(urlId);
        if(token == null){
            ExceptionHelper.error(ErrorCode.ERROR_CODE_0003);
        }
        try {
            Claims claims = TokenUtils.parseToken(refreshToken);
            if (StringUtils.isNotEmpty((String.valueOf(claims.getOrDefault(\"student_id\", \"\"))))) {
                claims.put(\"student_id\", SessionContext.get(\"student_id\"));
            }
            if (StringUtils.isNotEmpty((String.valueOf(claims.getOrDefault(\"teacher_id\", \"\"))))) {
                claims.put(\"teacher_id\", SessionContext.get(\"teacher_id\"));
            }
            if (StringUtils.isNotEmpty((String.valueOf(claims.getOrDefault(\"login_name\", \"\"))))) {
                claims.put(\"login_name\", SessionContext.get(\"login_name\"));
            }
            claims.put(\"name\", claims.get(\"name\"));
            token.setToken(TokenUtils.createToken(claims, TokenUtils.expireTime));
            token.setRefreshToken(TokenUtils.createToken(claims, TokenUtils.long_expireTime));
            TokenCache.getInstance().add(token);
        } catch (Exception e) {
            ExceptionHelper.error(ErrorCode.ERROR_CODE_0003);
        }
        return new Result<>(token);
    }
 
    /**
     * 退出系统
     */
    @RequestMapping(value = \"/login/exit\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<Token> exit(HttpRequest request) {
        String urlId = request.getString(\"url_id\");
        if (StringUtils.isNotEmpty(urlId)) {
            TokenCache.getInstance().remove(urlId);
        }
        return new Result<>();
    }
}

统一管理学生 教师 管理员信息:

 
 
/**
 * 统一管理学生 教师 管理员信息
 */
@RestController
public class UserController {
 
    @Resource(name = \"userService\")
    private IUserService userService;
 
    /**
     * 查询用户信息
     * 先判断用户类型 在查询用户信息
     */
    @RequestMapping(value = \"/user/qryUserInfo\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<User> qryUserInfo() {
        return userService.qryUserInfo();
    }
 
    /**
     * 更新用户信息
     */
    @RequestMapping(value = \"/user/update\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<User> update(HttpRequest request) {
        User user = new User();
        user.setUserId(request.getString(\"user_id\"));
        user.setName(request.getString(\"name\"));
        user.setSex(request.getInteger(\"sex\"));
        user.setType(User.UserType.get(request.getInteger(\"type\")));
        return userService.update(user, ImageUtil.stringToBytes(request.getString(\"user_image\")));
    }
 
    /**
     * 更新用户密码
     */
    @RequestMapping(value = \"/user/updatePwd\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    public Result<User> updatePwd(HttpRequest request) {
        return userService.updatePwd(request.getString(\"old_pwd\"), request.getString(\"pwd\"));
    }
}

学生管理控制器:

/**
 * 学生控制器
 */
@RestController
public class StudentController {
 
    @Resource(name = \"studentService\")
    private IStudentService studentService;
 
    /**
     * 管理员 查询学生列表
     */
    @RequestMapping(value = \"/student/qryPage\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    @RoleAnnotation(types = {RoleEnum.admin})
    public ListResult<Student> qryPage(HttpRequest request) {
        Map<String, Object> param = new HashMap<>();
        int pageNo = request.containsKey(\"page_no\") ? request.getInteger(\"page_no\") : 1;
        int pageSize = request.containsKey(\"page_size\") ? request.getInteger(\"page_size\") : 20;
        if (request.containsKey(\"student_id\")) {
            param.put(\"student_id\", request.getString(\"student_id\"));
        }
        if (request.containsKey(\"name\")) {
            param.put(\"name\", request.getString(\"name\"));
        }
        return studentService.qryPage(param, pageNo, pageSize);
    }
 
    @RequestMapping(value = \"/student/add\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    @RoleAnnotation(types = {RoleEnum.admin})
    public Result<Student> insert(HttpRequest request) {
        Student student = new Student();
        student.setStudentId(request.getString(\"student_id\"));
        student.setName(request.getString(\"student_name\"));
        student.setPwd(request.getString(\"student_id\"));
        student.setSex(request.getInteger(\"sex\"));
        student.setClassId(request.getString(\"class_id\"));
        student.setUpdateTime(new Date());
        return studentService.insert(student, ImageUtil.stringToBytes(request.getString(\"student_image\")));
    }
 
    @RequestMapping(value = \"/student/update\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    @RoleAnnotation(types = {RoleEnum.admin})
    public Result<Student> update(HttpRequest request) {
        Student student = new Student();
        student.setStudentId(request.getString(\"student_id\"));
        student.setName(request.getString(\"student_name\"));
        student.setPwd(request.getString(\"student_id\"));
        student.setSex(request.getInteger(\"sex\"));
        student.setClassId(request.getString(\"class_id\"));
        student.setUpdateTime(new Date());
        return studentService.update(student, ImageUtil.stringToBytes(request.getString(\"student_image\")));
    }
 
    @RequestMapping(value = \"/student/del\", method = RequestMethod.POST, produces = {\"application/json;charset=UTF-8\"})
    @RoleAnnotation(types = {RoleEnum.admin})
    public Result<Student> del(HttpRequest request) {
        List<String> studentIdList = new ArrayList<>();
        JSONArray array = request.getJSONArray(\"student_id_list\");
        for (int i = 0; i < array.size(); i++) {
            studentIdList.add(array.getString(i));
        }
        return studentService.del(studentIdList);
    }
 
 
}

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 基于Java实现考试管理系统 http://www.20zxx.cn/463023/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务