JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统

目录

一、系统介绍
1.开发环境
2.技术选型
3.系统功能
4.数据库文件
二、系统展示
1.系统登录
2.管理员-课程管理
3.管理员-学生管理
4.管理员-教师管理
5.管理员-账号密码设置
6.管理员-修改密码
7.教师-我的课程
8.教师-学生打分
9.教师-修改密码
10.学生-所有课程
11.学生-已选课程
12.学生-已修课程
13.学生-修改密码
【JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统】三、部分代码
AdminController
LoginController
RestPasswordController
StudentController
TeacherController
pom.xml
四、其他
1.更多系统
Java+JSP系统系列实现
Java+Servlet系统系列实现
Java+SSM系统系列实现
Java+SSH系统系列实现
Java+Springboot系统系列实现
2.源码下载
3.备注
4.支持博主
一、系统介绍 1.开发环境 开发工具:IDEA2018
JDK版本:jdk1.8
Mysql版本:8.0.13
2.技术选型 Java+Spring+SpringMVC+Mybatis+Bootstrap+Mysql+Maven
3.系统功能 用户
1.注册
2.登录
3.浏览书籍
4.购买书籍
4.数据库文件

/* Navicat Premium Data Transfer Source Server: MYSQL Source Server Type: MySQL Source Server Version : 80013 Source Host: localhost:3306 Source Schema: ssm_maven_examination Target Server Type: MySQL Target Server Version : 80013 File Encoding: 65001 Date: 06/12/2021 17:15:58 */SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for college -- ---------------------------- DROP TABLE IF EXISTS `college`; CREATE TABLE `college`( `collegeID` int(11) NOT NULL, `collegeName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名', PRIMARY KEY (`collegeID`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of college -- ---------------------------- INSERT INTO `college` VALUES (1, '计算机系'); INSERT INTO `college` VALUES (2, '设计系'); INSERT INTO `college` VALUES (3, '财经系'); -- ---------------------------- -- Table structure for course -- ---------------------------- DROP TABLE IF EXISTS `course`; CREATE TABLE `course`( `courseID` int(11) NOT NULL, `courseName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名称', `teacherID` int(11) NOT NULL, `courseTime` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开课时间', `classRoom` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开课地点', `courseWeek` int(200) NULL DEFAULT NULL COMMENT '学时', `courseType` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程类型', `collegeID` int(11) NOT NULL COMMENT '所属院系', `score` int(11) NOT NULL COMMENT '学分', PRIMARY KEY (`courseID`) USING BTREE, INDEX `collegeID`(`collegeID`) USING BTREE, INDEX `teacherID`(`teacherID`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of course -- ---------------------------- INSERT INTO `course` VALUES (1, 'C语言程序设计', 1001, '周二', '科401', 18, '必修课', 1, 4); INSERT INTO `course` VALUES (2, 'Python爬虫技巧', 1001, '周四', 'X402', 18, '必修课', 1, 3); INSERT INTO `course` VALUES (3, '数据结构', 1001, '周四', '科401', 18, '必修课', 1, 2); INSERT INTO `course` VALUES (4, 'Java程序设计', 1002, '周五', '科401', 18, '必修课', 1, 2); INSERT INTO `course` VALUES (5, '英语', 1002, '周四', 'X302', 18, '必修课', 2, 2); INSERT INTO `course` VALUES (6, '服装设计', 1003, '周一', '科401', 18, '选修课', 2, 2); -- ---------------------------- -- Table structure for role -- ---------------------------- DROP TABLE IF EXISTS `role`; CREATE TABLE `role`( `roleID` int(11) NOT NULL, `roleName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `permissions` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限', PRIMARY KEY (`roleID`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of role -- ---------------------------- INSERT INTO `role` VALUES (0, 'admin', NULL); INSERT INTO `role` VALUES (1, 'teacher', NULL); INSERT INTO `role` VALUES (2, 'student', NULL); -- ---------------------------- -- Table structure for selectedcourse -- ---------------------------- DROP TABLE IF EXISTS `selectedcourse`; CREATE TABLE `selectedcourse`( `courseID` int(11) NOT NULL, `studentID` int(11) NOT NULL, `mark` int(11) NULL DEFAULT NULL COMMENT '成绩', INDEX `courseID`(`courseID`) USING BTREE, INDEX `studentID`(`studentID`) USING BTREE, CONSTRAINT `FK1` FOREIGN KEY (`studentID`) REFERENCES `student` (`userid`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of selectedcourse -- ---------------------------- INSERT INTO `selectedcourse` VALUES (1, 10001, 98); INSERT INTO `selectedcourse` VALUES (2, 10001, 100); INSERT INTO `selectedcourse` VALUES (5, 10001, NULL); -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student`( `userID` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `birthYear` date NULL DEFAULT NULL COMMENT '出生日期', `grade` date NULL DEFAULT NULL COMMENT '入学时间', `collegeID` int(11) NOT NULL COMMENT '院系id', PRIMARY KEY (`userID`) USING BTREE, INDEX `collegeID`(`collegeID`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 10008 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES (10001, '张三', '女', '1996-09-02', '2015-09-02', 2); INSERT INTO `student` VALUES (10002, '李四', '男', '1996-09-02', '2015-09-02', 1); INSERT INTO `student` VALUES (10003, '小陈', '女', '1996-09-02', '2015-09-02', 2); INSERT INTO `student` VALUES (10004, '王五', '男', '1996-09-03', '2019-11-13', 3); INSERT INTO `student` VALUES (10005, '黄七', '女', '1996-09-02', '2015-09-02', 2); INSERT INTO `student` VALUES (10006, '赵六', '男', '1996-09-02', '2015-09-02', 2); -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher`( `userID` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `birthYear` date NOT NULL, `degree` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学历', `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称', `grade` date NULL DEFAULT NULL COMMENT '入职时间', `collegeID` int(11) NOT NULL COMMENT '院系', PRIMARY KEY (`userID`) USING BTREE, INDEX `collegeID`(`collegeID`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1004 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES (1001, '刘老师', '女', '1990-03-08', '硕士', '副教授', '2015-09-02', 2); INSERT INTO `teacher` VALUES (1002, '张老师', '女', '1996-09-02', '本科', '普通教师', '2015-09-02', 1); INSERT INTO `teacher` VALUES (1003, '软老师', '女', '1996-09-02', '硕士', '助教', '2017-07-07', 1); -- ---------------------------- -- Table structure for userlogin -- ---------------------------- DROP TABLE IF EXISTS `userlogin`; CREATE TABLE `userlogin`( `userID` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `role` int(11) NOT NULL DEFAULT 2 COMMENT '角色权限', PRIMARY KEY (`userID`) USING BTREE, INDEX `role`(`role`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of userlogin -- ---------------------------- INSERT INTO `userlogin` VALUES (1, 'admin', 'admin', 0); INSERT INTO `userlogin` VALUES (14, '1001', '123', 1); INSERT INTO `userlogin` VALUES (15, '1002', '123', 1); INSERT INTO `userlogin` VALUES (16, '1003', '123', 1); INSERT INTO `userlogin` VALUES (18, '10001', '123', 2); INSERT INTO `userlogin` VALUES (19, '10002', '123', 2); INSERT INTO `userlogin` VALUES (20, '10003', '123', 2); INSERT INTO `userlogin` VALUES (23, '10004', '123', 2); INSERT INTO `userlogin` VALUES (24, '10005', '123', 2); INSERT INTO `userlogin` VALUES (25, '10006', '123', 2); SET FOREIGN_KEY_CHECKS = 1;

二、系统展示 1.系统登录 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


2.管理员-课程管理 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


3.管理员-学生管理 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


4.管理员-教师管理 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


5.管理员-账号密码设置 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


6.管理员-修改密码 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


7.教师-我的课程 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


8.教师-学生打分 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


9.教师-修改密码 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


10.学生-所有课程 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


11.学生-已选课程 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


12.学生-已修课程 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片


13.学生-修改密码 JavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片

三、部分代码 AdminController
package com.system.controller; import com.system.exception.CustomException; import com.system.po.*; import com.system.service.*; 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 javax.annotation.Resource; import java.util.List; /** * Created by Jacey on 2017/7/5. */@Controller @RequestMapping("/admin") public class AdminController {@Resource(name = "studentServiceImpl") private StudentService studentService; @Resource(name = "teacherServiceImpl") private TeacherService teacherService; @Resource(name = "courseServiceImpl") private CourseService courseService; @Resource(name = "collegeServiceImpl") private CollegeService collegeService; @Resource(name = "userloginServiceImpl") private UserloginService userloginService; /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<学生操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*///学生信息显示 @RequestMapping("/showStudent") public String showStudent(Model model, Integer page) throws Exception {List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(studentService.getCountStudent()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = studentService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = studentService.findByPaging(page); }model.addAttribute("studentList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showStudent"; }//添加学生信息页面显示 @RequestMapping(value = "https://www.it610.com/addStudent", method = {RequestMethod.GET}) public String addStudentUI(Model model) throws Exception {List list = collegeService.finAll(); model.addAttribute("collegeList", list); return "admin/addStudent"; }// 添加学生信息操作 @RequestMapping(value = "https://www.it610.com/addStudent", method = {RequestMethod.POST}) public String addStudent(StudentCustom studentCustom, Model model) throws Exception {Boolean result = studentService.save(studentCustom); if (!result) { model.addAttribute("message", "学号重复"); return "error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(studentCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(2); userloginService.save(userlogin); //重定向 return "redirect:/admin/showStudent"; }// 修改学生信息页面显示 @RequestMapping(value = "https://www.it610.com/editStudent", method = {RequestMethod.GET}) public String editStudentUI(Integer id, Model model) throws Exception { if (id == null) { //加入没有带学生id就进来的话就返回学生显示页面 return "redirect:/admin/showStudent"; } StudentCustom studentCustom = studentService.findById(id); if (studentCustom == null) { throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("student", studentCustom); return "admin/editStudent"; }// 修改学生信息处理 @RequestMapping(value = "https://www.it610.com/editStudent", method = {RequestMethod.POST}) public String editStudent(StudentCustom studentCustom) throws Exception {studentService.updataById(studentCustom.getUserid(), studentCustom); //重定向 return "redirect:/admin/showStudent"; }// 删除学生 @RequestMapping(value = "https://www.it610.com/removeStudent", method = {RequestMethod.GET}) private String removeStudent(Integer id) throws Exception { if (id == null) { //加入没有带学生id就进来的话就返回学生显示页面 return "admin/showStudent"; } studentService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showStudent"; }// 搜索学生 @RequestMapping(value = "https://www.it610.com/article/selectStudent", method = {RequestMethod.POST}) private String selectStudent(String findByName, Model model) throws Exception {List list = studentService.findByName(findByName); model.addAttribute("studentList", list); return "admin/showStudent"; }/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教师操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 教师页面显示 @RequestMapping("/showTeacher") public String showTeacher(Model model, Integer page) throws Exception {List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(teacherService.getCountTeacher()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = teacherService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = teacherService.findByPaging(page); }model.addAttribute("teacherList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showTeacher"; }// 添加教师信息 @RequestMapping(value = "https://www.it610.com/addTeacher", method = {RequestMethod.GET}) public String addTeacherUI(Model model) throws Exception {List list = collegeService.finAll(); model.addAttribute("collegeList", list); return "admin/addTeacher"; }// 添加教师信息处理 @RequestMapping(value = "https://www.it610.com/addTeacher", method = {RequestMethod.POST}) public String addTeacher(TeacherCustom teacherCustom, Model model) throws Exception {Boolean result = teacherService.save(teacherCustom); if (!result) { model.addAttribute("message", "工号重复"); return "error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(teacherCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(1); userloginService.save(userlogin); //重定向 return "redirect:/admin/showTeacher"; }// 修改教师信息页面显示 @RequestMapping(value = "https://www.it610.com/editTeacher", method = {RequestMethod.GET}) public String editTeacherUI(Integer id, Model model) throws Exception { if (id == null) { return "redirect:/admin/showTeacher"; } TeacherCustom teacherCustom = teacherService.findById(id); if (teacherCustom == null) { throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("teacher", teacherCustom); return "admin/editTeacher"; }// 修改教师信息页面处理 @RequestMapping(value = "https://www.it610.com/editTeacher", method = {RequestMethod.POST}) public String editTeacher(TeacherCustom teacherCustom) throws Exception {teacherService.updateById(teacherCustom.getUserid(), teacherCustom); //重定向 return "redirect:/admin/showTeacher"; }//删除教师 @RequestMapping("/removeTeacher") public String removeTeacher(Integer id) throws Exception { if (id == null) { //加入没有带教师id就进来的话就返回教师显示页面 return "admin/showTeacher"; } teacherService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showTeacher"; }//搜索教师 @RequestMapping(value = "https://www.it610.com/article/selectTeacher", method = {RequestMethod.POST}) private String selectTeacher(String findByName, Model model) throws Exception {List list = teacherService.findByName(findByName); model.addAttribute("teacherList", list); return "admin/showTeacher"; }/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<课程操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 课程信息显示 @RequestMapping("/showCourse") public String showCourse(Model model, Integer page) throws Exception {List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(courseService.getCountCouse()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = courseService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = courseService.findByPaging(page); }model.addAttribute("courseList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showCourse"; }//添加课程 @RequestMapping(value = "https://www.it610.com/addCourse", method = {RequestMethod.GET}) public String addCourseUI(Model model) throws Exception {List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("collegeList", collegeList); model.addAttribute("teacherList", list); return "admin/addCourse"; }// 添加课程信息处理 @RequestMapping(value = "https://www.it610.com/addCourse", method = {RequestMethod.POST}) public String addCourse(CourseCustom courseCustom, Model model) throws Exception {Boolean result = courseService.save(courseCustom); if (!result) { model.addAttribute("message", "课程号重复"); return "error"; }//重定向 return "redirect:/admin/showCourse"; }// 修改教师信息页面显示 @RequestMapping(value = "https://www.it610.com/editCourse", method = {RequestMethod.GET}) public String editCourseUI(Integer id, Model model) throws Exception { if (id == null) { return "redirect:/admin/showCourse"; } CourseCustom courseCustom = courseService.findById(id); if (courseCustom == null) { throw new CustomException("未找到该课程"); } List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("teacherList", list); model.addAttribute("collegeList", collegeList); model.addAttribute("course", courseCustom); return "admin/editCourse"; }// 修改教师信息页面处理 @RequestMapping(value = "https://www.it610.com/editCourse", method = {RequestMethod.POST}) public String editCourse(CourseCustom courseCustom) throws Exception {courseService.upadteById(courseCustom.getCourseid(), courseCustom); //重定向 return "redirect:/admin/showCourse"; }// 删除课程信息 @RequestMapping("/removeCourse") public String removeCourse(Integer id) throws Exception { if (id == null) { //加入没有带教师id就进来的话就返回教师显示页面 return "admin/showCourse"; } courseService.removeById(id); return "redirect:/admin/showCourse"; }//搜索课程 @RequestMapping(value = "https://www.it610.com/article/selectCourse", method = {RequestMethod.POST}) private String selectCourse(String findByName, Model model) throws Exception {List list = courseService.findByName(findByName); model.addAttribute("courseList", list); return "admin/showCourse"; }/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<其他操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 普通用户账号密码重置 @RequestMapping("/userPasswordRest") public String userPasswordRestUI() throws Exception { return "admin/userPasswordRest"; }// 普通用户账号密码重置处理 @RequestMapping(value = "https://www.it610.com/userPasswordRest", method = {RequestMethod.POST}) public String userPasswordRest(Userlogin userlogin) throws Exception {Userlogin u = userloginService.findByName(userlogin.getUsername()); if (u != null) { if (u.getRole() == 0) { throw new CustomException("该账户为管理员账户,没法修改"); } u.setPassword(userlogin.getPassword()); userloginService.updateByName(userlogin.getUsername(), u); } else { throw new CustomException("没找到该用户"); }return "admin/userPasswordRest"; }// 本账户密码重置 @RequestMapping("/passwordRest") public String passwordRestUI() throws Exception { return "admin/passwordRest"; }}


LoginController
package com.system.controller; import com.system.po.Userlogin; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Created by Jacey on 2017/7/5. */ @Controller public class LoginController {//登录跳转 @RequestMapping(value = "https://www.it610.com/login", method = {RequestMethod.GET}) public String loginUI() throws Exception { return "../../login"; }//登录表单处理 @RequestMapping(value = "https://www.it610.com/login", method = {RequestMethod.POST}) public String login(Userlogin userlogin) throws Exception {//Shiro实现登录 UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(), userlogin.getPassword()); Subject subject = SecurityUtils.getSubject(); //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常 subject.login(token); if (subject.hasRole("admin")) { return "redirect:/admin/showStudent"; } else if (subject.hasRole("teacher")) { return "redirect:/teacher/showCourse"; } else if (subject.hasRole("student")) { return "redirect:/student/showCourse"; }return "/login"; }}


RestPasswordController
package com.system.controller; import com.system.exception.CustomException; import com.system.po.Userlogin; import com.system.service.UserloginService; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import javax.annotation.Resource; /** * Created by Jacey on 2017/7/5. */ @Controller public class RestPasswordController {@Resource(name = "userloginServiceImpl") private UserloginService userloginService; // 本账户密码重置 @RequestMapping(value = "https://www.it610.com/passwordRest", method = {RequestMethod.POST}) public String passwordRest(String oldPassword, String password1) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); Userlogin userlogin = userloginService.findByName(username); if (!oldPassword.equals(userlogin.getPassword())) { throw new CustomException("旧密码不正确"); } else { userlogin.setPassword(password1); userloginService.updateByName(username, userlogin); }return "redirect:/logout"; }}


StudentController
package com.system.controller; import com.system.exception.CustomException; import com.system.po.CourseCustom; import com.system.po.PagingVO; import com.system.po.SelectedCourseCustom; import com.system.po.StudentCustom; import com.system.service.CourseService; import com.system.service.SelectedCourseService; import com.system.service.StudentService; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import java.util.List; /** * Created by Jacey on 2017/7/5. */ @Controller @RequestMapping(value = "https://www.it610.com/student") public class StudentController {@Resource(name = "courseServiceImpl") private CourseService courseService; @Resource(name = "studentServiceImpl") private StudentService studentService; @Resource(name = "selectedCourseServiceImpl") private SelectedCourseService selectedCourseService; @RequestMapping(value = "https://www.it610.com/showCourse") public String stuCourseShow(Model model, Integer page) throws Exception {List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(courseService.getCountCouse()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = courseService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = courseService.findByPaging(page); }model.addAttribute("courseList", list); model.addAttribute("pagingVO", pagingVO); return "student/showCourse"; }// 选课操作 @RequestMapping(value = "https://www.it610.com/stuSelectedCourse") public String stuSelectedCourse(int id) throws Exception { //获取当前用户名 Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom); if (s == null) { selectedCourseService.save(selectedCourseCustom); } else { throw new CustomException("该门课程你已经选了,不能再选"); }return "redirect:/student/selectedCourse"; }// 退课操作 @RequestMapping(value = "https://www.it610.com/outCourse") public String outCourse(int id) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); selectedCourseService.remove(selectedCourseCustom); return "redirect:/student/selectedCourse"; }// 已选课程 @RequestMapping(value = "https://www.it610.com/selectedCourse") public String selectedCourse(Model model) throws Exception { //获取当前用户名 Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List list = studentCustom.getSelectedCourseList(); model.addAttribute("selectedCourseList", list); return "student/selectCourse"; }// 已修课程 @RequestMapping(value = "https://www.it610.com/overCourse") public String overCourse(Model model) throws Exception {//获取当前用户名 Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List list = studentCustom.getSelectedCourseList(); model.addAttribute("selectedCourseList", list); return "student/overCourse"; }//修改密码 @RequestMapping(value = "https://www.it610.com/passwordRest") public String passwordRest() throws Exception { return "student/passwordRest"; }}


TeacherController
package com.system.controller; import com.system.po.CourseCustom; import com.system.po.SelectedCourseCustom; import com.system.service.CourseService; import com.system.service.SelectedCourseService; import com.system.service.TeacherService; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; 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 javax.annotation.Resource; import java.util.List; /** * Created by Jacey on 2017/7/6. */@Controller @RequestMapping(value = "https://www.it610.com/teacher") public class TeacherController {@Resource(name = "teacherServiceImpl") private TeacherService teacherService; @Resource(name = "courseServiceImpl") private CourseService courseService; @Resource(name = "selectedCourseServiceImpl") private SelectedCourseService selectedCourseService; // 显示我的课程 @RequestMapping(value = "https://www.it610.com/showCourse") public String stuCourseShow(Model model) throws Exception {Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); List list = courseService.findByTeacherID(Integer.parseInt(username)); model.addAttribute("courseList", list); return "teacher/showCourse"; }// 显示成绩 @RequestMapping(value = "https://www.it610.com/gradeCourse", method = {RequestMethod.GET}) public String gradeCourse(Integer id, Model model) throws Exception { if (id == null) { return ""; } System.out.println("id:"+id); List list = selectedCourseService.findByCourseID(id); model.addAttribute("selectedCourseList", list); return "teacher/showGrade"; }// 打分 @RequestMapping(value = "https://www.it610.com/mark", method = {RequestMethod.GET}) public String markUI(SelectedCourseCustom scc, Model model) throws Exception {SelectedCourseCustom selectedCourseCustom = selectedCourseService.findOne(scc); model.addAttribute("selectedCourse", selectedCourseCustom); return "teacher/mark"; }// 打分 @RequestMapping(value = "https://www.it610.com/mark", method = {RequestMethod.POST}) public String mark(SelectedCourseCustom scc) throws Exception {selectedCourseService.updataOne(scc); return "redirect:/teacher/gradeCourse?id=" + scc.getCourseid(); }//修改密码 @RequestMapping(value = "https://www.it610.com/passwordRest") public String passwordRest() throws Exception { return "teacher/passwordRest"; }}

pom.xml
4.0.0com.sjsq Examination 1.0-SNAPSHOTwarExamination Maven Webapphttp://www.example.comUTF-8 1.7 1.7 junit junit 4.12 test javax.servlet javax.servlet-api 3.1.0 provided org.apache.shiro shiro-core 1.2.3 org.apache.shiro shiro-web 1.2.3 org.apache.shiro shiro-spring 1.2.3 org.springframework spring-context 4.3.8.RELEASE org.springframework spring-web 4.3.8.RELEASE org.springframework spring-webmvc 4.3.7.RELEASE org.springframework spring-tx 4.3.8.RELEASE org.springframework spring-aop 4.3.9.RELEASE org.aspectj aspectjweaver 1.8.10 org.springframework spring-jdbc 4.2.5.RELEASE javax.servlet jstl 1.2 log4j log4j 1.2.17 org.mybatis mybatis 3.4.1 org.mybatis.generator mybatis-generator-core 1.3.5 org.mybatis mybatis-spring 1.3.0 org.hibernate hibernate-validator 5.4.1.Final com.mchange c3p0 0.9.5.2 mysql mysql-connector-java 8.0.13 org.jetbrains annotations-java5 RELEASE org.jetbrains annotations-java5 15.0 Examination_System src/main/java **/*.xml

四、其他 1.更多系统 Java+JSP系统系列实现
Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统
Java+Servlet系统系列实现
Java+Servlet+JSP实现航空订票系统
Java+Servlet+JSP实现新闻发布系统
Java+Servlet+JSP学生宿舍管理系统
Java+Servlet+JSP实现图书管理系统
Java+Servlet+JSP实现停车场管理系统
Java+Servlet+JSP实现房屋租赁管理系统
Java+Servlet+JSP实现学生信息管理系统
Java+Servlet+JSP实现学生选课管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+Servlet+JSP实现学生成绩管理系统-1
Java+Servlet+JSP实现学生成绩管理系统-2
Java+SSM系统系列实现
Java+SSM+JSP实现超市订单系统
J???ava+SSM+JSP实现网上考试系统
Java+SSM+JSP实现宠物商城系统
Java+SSM+Layui实现学生成绩管理系统
Java+SSM+Bootstrap实现学生信息管理系统
Java+SSH系统系列实现
Java+SSH+JSP实现在线考试系统
Java+SSH+JSP实现医院在线挂号系统
Java+Springboot系统系列实现
Java+Springboot+H-ui+Maven实现营销管理系统
Java+Springboot+Bootstrap+Maven实现网上商城系统
Java+Springboot+Bootstrap+Maven实现景区旅游管理系统
1.更多JavaWeb系统请关注专栏。
https://blog.csdn.net/helongqiang/category_10020130.htmlJavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片
https://blog.csdn.net/helongqiang/category_10020130.html
2.更多JavaSwing系统请关注专栏。
https://blog.csdn.net/helongqiang/category_6229101.htmlJavaWeb实战|IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
文章图片
https://blog.csdn.net/helongqiang/category_6229101.html
2.源码下载 Java+SSM+Maven+Mysql+Bootstrap实现学校教务管理系统
3.备注 如有侵权请联系我删除。感谢Jacey作者原创。
4.支持博主 如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!想要获取其他资源可关注左侧微信公众号获取!

    推荐阅读