基于javaweb的SSM+Maven教务管理系统(java+ssm+mysql+jsp+easyui)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

511923252708

521923252708

531923252708

541923252708

551923252708

561923252708

基于javaweb的SSM+Maven教务管理系统(java+ssm+mysql+jsp+easyui)

首页:
http://localhost:8080/login

管理员:
admin 123456

学生:
1001 小王 男 123456

教师:
2001 123456

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;

@GetMapping("/index")
public String index() {
return "admin/index";
}

@PostMapping("/student/add")
@ResponseBody
public ResultVO<?> addStudent(Student student, MultipartFile studentPhotoFile, HttpSession session) throws IOException {
String realPath = session.getServletContext().getRealPath("/upload");
File uploadDirectory = new File(realPath);
if (!uploadDirectory.exists()) {
uploadDirectory.mkdirs();
}
if (!studentPhotoFile.isEmpty()) {
String suffix = studentPhotoFile.getOriginalFilename()
.substring(studentPhotoFile.getOriginalFilename().lastIndexOf("."));
String fileName = UUID.randomUUID().toString() + suffix;
File file = new File(uploadDirectory + File.separator + fileName);
studentPhotoFile.transferTo(file);
student.setImage("/upload/" + fileName);
}
return adminService.addStudent(student);
}

@PostMapping("/student/list")
@ResponseBody
public Map<String, Object> listStudent(Integer page, Integer rows, @RequestParam(value = "keyword", required = false)String keyword) throws IOException {
PageInfo<Student> pageInfo = adminService.pageStudent(page, rows, keyword);
HashMap<String, Object> map = new HashMap<>();
map.put("total", pageInfo.getTotal());
map.put("rows", pageInfo.getList());
return map;
}

@PostMapping("/student/import")
@ResponseBody
public ResultVO<?> importExcel(MultipartFile file) throws IOException {
adminService.importStudentExcel(file);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

/**
* @name: SystemController
**/
@Controller
public class SystemController {

@Autowired
private SystemService systemService;

@GetMapping("/login")
public String login() {
return "login";
}

@PostMapping("/login")
public void handleLogin(@RequestParam String username, @RequestParam String password,
@RequestParam String identify, HttpServletResponse response,
HttpSession session) throws IOException {

Map<String, Object> m = new HashMap<>();
String addr = systemService.login(username, password, identify);
boolean success = addr != null;

if (success) {
session.setAttribute("username", username);
session.setAttribute("identify", identify);
m.put("addr", addr);
}

response.setContentType("text/json;charset=UTF-8");
PrintWriter out = response.getWriter();

m.put("success", success);
m.put("msg", success ? "登录成功" : "登录失败");

out.println(JSON.toJSONString(m));
out.flush();
out.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@ResponseBody
public Map<String, Object> listTeacher(Integer page, Integer rows) {
PageInfo<Teacher> pageInfo = adminService.pageTeacher(page, rows);
HashMap<String, Object> map = new HashMap<>();
map.put("total", pageInfo.getTotal());
map.put("rows", pageInfo.getList());
return map;
}

@PostMapping("/teacher/import")
@ResponseBody
public ResultVO<?> importTeacherExcel(MultipartFile file) throws IOException {
adminService.importTeacherExcel(file);
return ResultVO.ok("导入成功!");
}

@PostMapping("/classes/add")
@ResponseBody
public ResultVO<?> addClasses(Classes classes) {
return adminService.addClasses(classes);
}

@PostMapping("/classes/list")
@ResponseBody
public Map<String, Object> listClasses(Integer page, Integer rows) {
PageInfo<Classes> pageInfo = adminService.pageClasses(page, rows);
HashMap<String, Object> map = new HashMap<>();
map.put("total", pageInfo.getTotal());
map.put("rows", pageInfo.getList());
return map;
}

@PostMapping("/classes/import")
@ResponseBody
public ResultVO<?> importClassesExcel(MultipartFile file) throws IOException {
adminService.importClassesExcel(file);
return ResultVO.ok("导入成功!");
}

@PostMapping("/changePassword")
@ResponseBody
public ResultVO<?> changePassword(String oldPassword, String newPassword, String newPassword2, HttpSession session) {
if (StringUtils.isEmpty(oldPassword)) {
throw new UserException("请输入旧密码!");
}
if (StringUtils.isEmpty(newPassword) || StringUtils.isEmpty(newPassword2)) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

response.setContentType("text/json;charset=UTF-8");
PrintWriter out = response.getWriter();

m.put("success", success);
m.put("msg", success ? "登录成功" : "登录失败");

out.println(JSON.toJSONString(m));
out.flush();
out.close();
}

@GetMapping("/logout")
public String logout(HttpSession session){
session.removeAttribute("username");
session.removeAttribute("identify");
return "redirect:/login";
}
}



/**
* @name: AuthInterceptor
**/
@Component
public class AuthInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String identify = (String) request.getSession().getAttribute("identify");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    }

@PostMapping("/require/page")
@ResponseBody
public Map<String, Object> pageRequire(Integer page, Integer rows, @RequestParam(value = "keyword", required = false) String cname, HttpSession session) {
String sno = (String) session.getAttribute("username");
PageInfo<StudentCourseInfo> pageInfo = studentService.pageRequireCourse(sno, cname, page, rows);
HashMap<String, Object> map = new HashMap<>();
map.put("total", pageInfo.getTotal());
map.put("rows", pageInfo.getList());
return map;
}

@PostMapping("/elective/page")
@ResponseBody
public Map<String, Object> pageElective(Integer page, Integer rows, @RequestParam(value = "keyword", required = false) String cname, HttpSession session) {
String sno = (String) session.getAttribute("username");
PageInfo<StudentCourseInfo> pageInfo = studentService.pageElectiveCourse(sno, cname, page, rows);
HashMap<String, Object> map = new HashMap<>();
map.put("total", pageInfo.getTotal());
map.put("rows", pageInfo.getList());
return map;
}

@GetMapping("/course/select")
@ResponseBody
public Map<String, Object> selectCourseInfo(HttpSession session) {
String sno = (String) session.getAttribute("username");
HashMap<String, Object> map = new HashMap<>();
map.put("rows", studentService.selectCourseInfo(sno));
return map;
}

@PostMapping("/course/select")
@ResponseBody
public ResultVO<?> submitSelectCourse(@RequestBody StudentElectiveCourse studentElectiveCourse, HttpSession session) {
String sno = (String) session.getAttribute("username");
System.out.println(studentElectiveCourse);
return studentService.submitSelectCourse(sno, studentElectiveCourse.getId());
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

@PostMapping("/classes/import")
@ResponseBody
public ResultVO<?> importClassesExcel(MultipartFile file) throws IOException {
adminService.importClassesExcel(file);
return ResultVO.ok("导入成功!");
}

@PostMapping("/changePassword")
@ResponseBody
public ResultVO<?> changePassword(String oldPassword, String newPassword, String newPassword2, HttpSession session) {
if (StringUtils.isEmpty(oldPassword)) {
throw new UserException("请输入旧密码!");
}
if (StringUtils.isEmpty(newPassword) || StringUtils.isEmpty(newPassword2)) {
throw new UserException("请输入新密码!");
}
if (!newPassword.equals(newPassword2)) {
throw new UserException("再次新密码输入不一致!");
}
String username = (String) session.getAttribute("username");
// TODO 密码修改成功响应到页面的数据未处理
return adminService.changePassword(username, oldPassword, newPassword);
}
}



/**
* @name: TeacherController
**/
@Controller
@RequestMapping("/teacher")
public class TeacherController {
@Autowired
private TeacherService teacherService;


项目链接:
https://javayms.github.io?id=501923252708201ch
https://javayms.pages.dev?id=501923252708201ch