基于javaweb的考试在线报名管理系统(java+ssm+html+js+jsp+mysql) | 您所在的位置:网站首页 › java课程报名 › 基于javaweb的考试在线报名管理系统(java+ssm+html+js+jsp+mysql) |
基于javaweb的考试在线报名管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+mysql的考试在线报名管理系统(java+SSM+HTML+JS+jsp+mysql) 项目介绍 考务管理员角色包含以下功能: 考务管理员登录,教务办公室管理,考场管理,考试管理,考场分配管理,报名管理等功能。 管理员角色包含以下功能: 管理员登录,学院管理,班级管理,学生管理,考务管理员管理,管理员管理等功能。 学生角色包含以下功能: 学生登录,查看我的报名,报名考试,密码修改,缴费等功能。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 技术栈 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp使用说明 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录学生考试信息管理控制层: @Controller public class StudentExamInfoHandler { @Autowired private StudentExamInfoService studentExamInfoService; @Autowired private ClassInfoService classInfoService; @Autowired private StudentInfoService studentInfoService; @Autowired private Gson gson; private Logger logger = Logger.getLogger(StudentExamInfoHandler.class); /** 所有学生考试信息 图表 Json 字符串生成 @param teacherId @param response @throws IOException */ @RequestMapping(“/examCount”) public void getStudentExamCount(@RequestParam(“tid”) Integer teacherId, HttpServletResponse response) throws IOException { if (teacherId == null) { response.getWriter().print(“TID-NULL”); } else { // 获取当前班主任对应的班级 ClassInfo classInfo = classInfoService.getClassByTeacherId(teacherId); // 获取学生考试信息 List stuExamInfos = studentExamInfoService .getStudentExamCountByClassId(classInfo.getClassId()); response.getWriter().print(StudentExamInfoCharts.createExamCountBarJson(stuExamInfos)); /** 获取班级中的所有学生 @param teacherId @param response @throws IOException */ @RequestMapping(“/stus”) public void getStudentsByClassId(@RequestParam(“tid”) Integer teacherId, HttpServletResponse response) throws IOException { if (teacherId == null) { response.getWriter().print(“TID-NULL”); } else { // 获取当前班主任对应的班级 ClassInfo classInfo = classInfoService.getClassByTeacherId(teacherId); // 获取所有学生信息 List stus = studentInfoService.getStudentsByClassId(classInfo.getClassId()); response.getWriter().print(gson.toJson(stus)); /** 班级下所有学生考试平均分等信息 图表 Json 生成 @param teacherId @param response @throws IOException */ @RequestMapping(“/avgcounts”) public void getAllStudentAvgScoreCount(@RequestParam(“tid”) Integer teacherId, HttpServletResponse response) throws IOException { if (teacherId == null) { response.getWriter().print(“TID-NULL”); } else { // 获取当前班主任对应的班级 ClassInfo classInfo = classInfoService.getClassByTeacherId(teacherId); // 获取所有学生信息 平局分等信息 List stuExamInfos = studentExamInfoService .getAllStudentAvgScoreCount(classInfo.getClassId()); response.getWriter().print(StudentExamInfoCharts.createAvgCountLineJson(stuExamInfos)); @RequestMapping(“/stuexam”) public void getStudentExamInfoById(@RequestParam(“stuId”) Integer studentId, HttpServletResponse response) throws IOException { // 获取学生考试信息 List stuExamInfos = studentExamInfoService.getStudentExamInfo(studentId); response.getWriter().print(StudentExamInfoCharts.createStudentExamLineJson(stuExamInfos)); 班级管理控制层: @Controller @SuppressWarnings(“all”) public class ClassInfoHandler { @Autowired private ClassInfoService classInfoService; @Autowired private GradeInfoService gradeInfoService; @Autowired private TeacherInfoService teacherInfoService; @Autowired private TeacherInfo teacher; @Autowired private ClassInfo classInfo; @Autowired private Gson gson; private Logger logger = Logger.getLogger(ClassInfoHandler.class); /** 获取所有班级 @param gradeId 系部编号@param className 班级名称 可用于模糊查询@param classId 班级编号@return */ @RequestMapping(value = “/classes”, method = RequestMethod.GET) public ModelAndView getClasses(@RequestParam(value = “gradeId”, required = false) Integer gradeId, @RequestParam(value = “className”, required = false) String className, @RequestParam(value = “classId”, required = false) Integer classId) { ModelAndView model = new ModelAndView(); ClassInfo classInfo = new ClassInfo(); /* 处理查询条件 */ if (gradeId != null) { GradeInfo gradeInfo = new GradeInfo(); gradeInfo.setGradeId(gradeId); classInfo.setGrade(gradeInfo); if (classId != null) classInfo.setClassId(classId); if (className != null) { if (className.trim() != “”) classInfo.setClassName(className); List classes = classInfoService.getClasses(classInfo); model.setViewName(“admin/clazz/classes”); model.addObject(“classes”, classes); return model; /** 预添加班级处理 @return */ @RequestMapping(“/preAddClass”) public ModelAndView preAddClass(@RequestParam(name = “gid”,required = false,defaultValue = “”)Integer gid) { ModelAndView model = new ModelAndView(); // 获取系部信息 List grades = gradeInfoService.getGrades(); model.setViewName(“admin/clazz/classedit”); model.addObject(“grades”, grades); // 获取不是班主任的教师 teacher.setIsWork(0); Map map = new HashMap(); map.put(“startIndex”, null); map.put(“pageShow”, null); map.put(“teacher”, teacher); List teachers = teacherInfoService.getTeachers(map); model.addObject(“teachers”, teachers); model.addObject(“editClass”, new ClassInfo()); model.addObject(“gid”,gid); return model; /** 添加班级 @param classInfo 班级信息@param request @return */ @RequestMapping(value = “/class”, method = RequestMethod.POST) public String isAddClass(ClassInfo classInfo, HttpServletRequest request) { //判断班级名是否存在 ClassInfo byClassName = classInfoService.findByClassName(classInfo.getClassName()); if(byClassName!=null){ request.setAttribute(“error”, “该班级名称已存在!”); return “error”; // 修改教师班主任状态 String returnMsg = isChangeTeacherWork(1, classInfo.getTeacher().getTeacherId()); if (returnMsg != null) { request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”); return “error”; // 添加 int row = classInfoService.isAddClass(classInfo); if (row < 1) { request.setAttribute(“error”, “班级 " + classInfo.getClassName() + " 添加失败,请稍后再试!”); return “error”; return “redirect:/classes”; /** 删除班级 @param classId 班级编号@param request @return */ @RequestMapping(value = “/del/class/{classId}”, method = RequestMethod.DELETE) public String isDelClass(@PathVariable(“classId”) Integer classId, HttpServletRequest request) { logger.info("删除班级 " + classId); // 将删除班级对于之前班主任改为 非班主任状态 // 需要在删除班级之前修改,如果先删除了班级,再根据班级获取教师编号,就不能获取 ClassInfo delClass = classInfoService.getClassById(classId); String returnMsg = isChangeTeacherWork(0, delClass.getTeacher().getTeacherId()); if (returnMsg != null) { request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”); return “error”; // 删除 int row = classInfoService.isDelClass(classId); if (row < 1) { logger.error(“班级 " + classId + " 删除失败”); request.setAttribute(“error”, “班级删除失败,请稍后再试!”); return “…/error”; return “redirect:/classes”; /** 预修改班级处理 @param classId 班级编号@return */ @RequestMapping(value = “edit/class/{classId}”, method = RequestMethod.GET) public ModelAndView preUpdateClass(@PathVariable(“classId”) Integer classId) { logger.info(“预修改班级处理”); ModelAndView model = new ModelAndView(); // 获取要修改班级 ClassInfo classInfo = classInfoService.getClassById(classId); model.setViewName(“/admin/clazz/classedit”); model.addObject(“editClass”, classInfo); List grades = gradeInfoService.getGrades(); // 获取不是班主任的教师 teacher.setIsWork(0); Map map = new HashMap(); map.put(“startIndex”, null); map.put(“pageShow”, null); map.put(“teacher”, teacher); List teachers = teacherInfoService.getTeachers(map); // 如果没有可用班主任 if (teachers.size() == 0 || teachers == null) { teacher.setTeacherId(classInfo.getTeacher().getTeacherId()); teacher.setTeacherName(“暂无剩余教师”); teachers.add(teacher); model.addObject(“teachers”, teachers); model.addObject(“grades”, grades); return model; /** 修改班级信息 @param classInfo 班级信息@param request @param lastTeacherId 上一个班主任编号,修改其 班主任状态@return */ @RequestMapping(value = “edit/class/class”, method = RequestMethod.POST) public String isUpdateClass(ClassInfo classInfo, HttpServletRequest request, @RequestParam(value = “lastTeacher”, required = false) Integer lastTeacherId) { ClassInfo byClassName = classInfoService.findByClassName(classInfo.getClassName()); if(byClassName!=null){ if(!byClassName.getClassId().equals(classInfo.getClassId())){ request.setAttribute(“error”, “该班级名称已存在!”); return “…/…/error”; // 修改上一教师不为班主任状态 if (lastTeacherId != null) { String returnMsg = isChangeTeacherWork(0, lastTeacherId); if (returnMsg != null) { request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”); return “…/error”; // 修改当前教师为班主任状态 String returnMsg = isChangeTeacherWork(1, classInfo.getTeacher().getTeacherId()); if (returnMsg != null) { request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”); return “…/error”; int row = classInfoService.isUpdateClass(classInfo); if (row < 1) { logger.error(“班级 " + classInfo + " 修改失败”); request.setAttribute(“error”, “班级修改失败,请稍后再试!”); return “…/error”; return “redirect:/classes”; /** 获取指定系部下的班级 @param gradeId 系部编号@param response @throws IOException */ @RequestMapping(value = “/gradeclass/{gradeId}”, method = RequestMethod.GET) public void getClassesByGradeId(@PathVariable(“gradeId”) Integer gradeId, HttpServletResponse response) throws IOException { List classes = classInfoService.getClassByGradeId(gradeId); String json = gson.toJson(classes); response.getWriter().print(json); /** 修改教师(班主任)工作状态 @param status 是否为班主任标识@param teacherId 教师编号*/ private String isChangeTeacherWork(int status, Integer teacherId) { teacher.setIsWork(status); if (teacherId == null) { logger.error(“修改教师班主任状态 对应教师编号有误”); return “修改教师班主任状态 对应教师编号有误”; teacher.setTeacherId(teacherId); int row = teacherInfoService.updateTeacherIsWork(teacher); return null; @RequestMapping(“/stuCount”) public void getStudentCountForClass(@RequestParam(value = “gradeId”, required = false) Integer gradeId, HttpServletResponse response) throws IOException { Map map = classInfoService.getStudentCountForClass(gradeId); String json = StudentCount.createBarJson(map); response.getWriter().print(json); /** 预添加班级处理 @return */ @RequestMapping(“/preStudentCount”) public ModelAndView preStudentCount() { ModelAndView model = new ModelAndView(); // 获取系部信息 List grades = gradeInfoService.getGrades(); model.setViewName(“admin/charts/studentCount”); model.addObject(“grades”, grades); return model; 科目管理控制层: @Controller @SuppressWarnings(“all”) public class CourseInfoHandler { @Autowired private CourseInfoService courseInfoService; @Autowired private GradeInfoService gradeInfoService; private Logger logger = Logger.getLogger(CourseInfoHandler.class); /** 获取科目信息 @param gradeId 系部编号@param division 分科情况@return */ @RequestMapping(“/courses”) public ModelAndView getCourses(@RequestParam(value = “gradeId”, required = false) Integer gradeId, @RequestParam(value = “division”, required = false) Integer division) { ModelAndView model = new ModelAndView(); model.setViewName(“/admin/course/courses”); CourseInfo course = new CourseInfo(); if (gradeId != null) course.getGrade().setGradeId(gradeId); if (division != null) course.setDivision(division); List courses = courseInfoService.getCourses(course); model.addObject(“courses”, courses); return model; /** 根据科目编号获取学科信息 @param courseId 科目编号@return */ @RequestMapping(“/course/{courseId}”) public ModelAndView getCourseById(@PathVariable(“courseId”) Integer courseId) { ModelAndView model = new ModelAndView(); model.setViewName(“/admin/course/courseedit”); CourseInfo course = courseInfoService.getCourseById(courseId); model.addObject(“course”, course); /** 获取所有系部列表 */ List grades = gradeInfoService.getGrades(); model.addObject(“grades”, grades); return model; /** 添加/修改科目信息 @param courseId 科目编号@param isUpdate 标识是否为修改操作@param courseName 科目名称@param division 分科情况@param gradeId 系部编号@return */ @RequestMapping(value = “/course/course”, method = RequestMethod.POST) public String isUpdateOrAddCourse(@RequestParam(value = “courseId”, required = false) Integer courseId, @RequestParam(value = “isupdate”, required = false) Integer isUpdate, @RequestParam(“courseName”) String courseName, @RequestParam(“division”) Integer division, @RequestParam(“gradeId”) Integer gradeId) { CourseInfo course = new CourseInfo(); course.setCourseId(courseId); course.setCourseName(courseName); course.setDivision(division); GradeInfo grade = new GradeInfo(); grade.setGradeId(gradeId); course.setGrade(grade); // 修改 if (isUpdate != null) { int row = courseInfoService.isUpdateCourse(course); // 添加 else { int row = courseInfoService.isAddCourse(course); return “redirect:/courses”; /** 删除科目 @param courseId 待删除科目编号@return */ @RequestMapping(value = “/course/{courseId}”, method = RequestMethod.DELETE) public String isDelTeacher(@PathVariable(“courseId”) Integer courseId) { int row = courseInfoService.isDelCourse(courseId); return “redirect:/courses”; /** 预添加科目信息 @return */ @RequestMapping(“/preAddCourse”) public ModelAndView preAddCourse() { ModelAndView model = new ModelAndView(); model.setViewName(“/admin/course/courseedit”); /** 获取系部集合 */ List grades = gradeInfoService.getGrades(); model.addObject(“grades”, grades); return model; |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |