基于javaweb的SSM+Maven毕业设计管理系统(java+ssm+tomcat+maven+mysql+html)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

041123552708

051123552708

061123552708

071123552708

081123552708

基于javaweb的SSM+Maven毕业设计管理系统(java+ssm+tomcat+maven+mysql+html)

登录页面:http://localhost:8080/graduation/login.html
学生,教师统一使用该登录界面进行登录

graduation
毕业设计管理系统可以分为五个模块:登录模块,选题模块,信息管理模块,流程管理模块,文件管理模块。

  • 该系统在技术上使用Spring+SpringMVC+MyBatis整合框架作为后台开发框架,AmazeUI作为前端开发框架。
    并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目的登录认证,数据库使用的则是MySQL。
  • 该系统可以分为三类角色:学生,教师,教务管理员。
  • 该系统前端界面使用纯HTML实现,与后台的交互则都是通过Ajax完成。
    登录模块
    登录模块主要完成教务管理员,教师,学生用户的登录功能,每个角色登录之后会看到不同的操作界面。
    选题模块
    选题模块主要完成师生双选这一业务流程。
    信息管理模块
    信息管理模块主要完成对各种信息的crud操作。
    流程管理模块
    流程管理主要完成对开题报告,中期检查,免答辩申请,验收/答辩,论文审核,盲审的流程的管理。
    文件管理模块
    文件管理模块主要对文件的上传与下载。

部分界面

  • 登录(学生,教师统一使用该登录界面进行登录)

  • 主页(主页可以看到一些内容概要与相关提示)

  • 教师列表(通过选择某一教师进而选择其课题)

  • 申报课题(教师只有填写课题名之后才可以申报课题)

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
@RequestMapping(value="/getSubTeacher",method=RequestMethod.GET)
public PageInfo<Teacher> getSubTeacher(@RequestParam(defaultValue="1")int pageNum,@RequestParam(defaultValue="8")int pageSize){
PageHelper.startPage(pageNum, pageSize);
List<Teacher> list = teacherService.getSubTeacher();
return new PageInfo<Teacher>(list);
}

@ResponseBody
@RequestMapping(value="/findTeacherByTeacherName",method=RequestMethod.GET)
public PageInfo<Teacher> findTeacherByTeacherName(String teacherName,HttpServletResponse response,
@RequestParam(defaultValue="1")int pageNum,@RequestParam(defaultValue="8")int pageSize){
response.setContentType("application/json");
PageHelper.startPage(pageNum, pageSize);
List<Teacher> list = teacherService.findTeacherByTeacherName(teacherName);
return new PageInfo<>(list);
}

@ResponseBody
@RequestMapping("/findTeacherAndProject")
public Teacher findTeacherAndProject(HttpSession session) {
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
Teacher teacherPlus = teacherService.findTeacherAndProject(teacher.getTeacherId());
if(teacherPlus!=null) {
return teacherPlus;
}
}
}
return null;
}

@ResponseBody
@RequestMapping("/findTeacher")
public Teacher findTeacher(HttpSession session) {
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
Teacher teacherPlus = teacherService.findTeacherByTeacherId(teacher.getTeacherId());
if(teacherPlus!=null) {
return teacherPlus;
}
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
		if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
}
String filename=portrait.getOriginalFilename();
String dbPath=request.getServletContext().getContextPath()+"/portrait/"+user.getUserId();
String basePath=request.getServletContext().getRealPath("/portrait/"+user.getUserId());
new File(basePath).mkdir();
File portraitFile=new File(basePath,filename);
try {
portrait.transferTo(portraitFile);
user.setUserPortrait(dbPath+"/"+filename);
return userService.updateUserInfo(user);
} catch (Exception e) {
e.printStackTrace();
}

}
return userService.updateUserInfo(user);
}

@ResponseBody
@RequestMapping(value="/updatePwd",method=RequestMethod.PUT)
public boolean updateStudentPwd(User user,HttpSession session) {
String password=user.getUserPassword();
if(password!=null&&!password.isEmpty()) {
user.setUserPassword(Utils.md5(password));
boolean bool = userService.updateUserInfo(user);
if(bool==true) {
session.removeAttribute("user");
return true;
}
}
return false;
}


}

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
				}
}
}
return new Mdb();
}

@ResponseBody
@RequestMapping(value="/updateColumn",method=RequestMethod.PUT)
public boolean updateColumn(Mdb mdb) {
return mdbService.updateColumn(mdb);
}

@ResponseBody
@RequestMapping(value="/updateColumnById",method=RequestMethod.PUT)
public boolean updateColumnById(Mdb mdb) {
return mdbService.updateColumnById(mdb);
}

@RequestMapping("/gotoTsureMdb")
public ModelAndView gotoTsureMdb(@RequestParam(required=true)String studentId) {
return new ModelAndView("/teacher/tsuremdb.html?studentId="+studentId);
}

}


@Controller
@RequestMapping("/zqjcController")
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
				return teacherService.getTeacherYansouInfo(teacher.getTeacherId());
}
}
return null;
}

@ResponseBody
@RequestMapping("/thisTeacherisLeader")
public YansouTeacher thisTeacherisLeader(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
return teacherService.thisTeacherisLeader(user);
}
return null;
}

@ResponseBody
@RequestMapping("/getYansouTeamStu")
public PageInfo<Student> getYansouTeamStu(HttpSession session,
@RequestParam(defaultValue="1")int pageNum, @RequestParam(defaultValue="8")int pageSize){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
PageHelper.startPage(pageNum, pageSize);
List<Student> list = teacherService.getYansouTeamStu(teacher.getTeacherId());
return new PageInfo<Student>(list);
}
}
return null;
}

}


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
47
48
49
50
51
52
53
54
		Lunwen lunwen = lunwenService.getLunwenBySid(studentId);
if(lunwen!=null) {
return lunwen;
}
}else {
User user = (User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
Lunwen lunwen = lunwenService.getLunwenBySid(student.getStudentId());
if(lunwen!=null) {
return lunwen;
}
}
}
return new Lunwen();
}

@ResponseBody
@RequestMapping(value="/upLunwenBySid",method=RequestMethod.PUT)
public boolean upLunwenBySid(Lunwen lunwen) {
return lunwenService.upLunwenBySid(lunwen);
}

@ResponseBody
@RequestMapping(value="/upload_lunwen",method=RequestMethod.POST)
public boolean saveProduct(@RequestParam(value="lunwen",required=true)MultipartFile lunwen,
@RequestParam("userId")String userId,HttpServletRequest request) {
if(lunwen!=null&&lunwen.getSize()>0) {
if(lunwen.getSize()>(10*1024*1024)) {
return false;
}
String filename = lunwen.getOriginalFilename();
String basePath=request.getServletContext().getRealPath("/WEB-INF/lunwen/"+userId);
new File(basePath).mkdir();
File lunewenFile=new File(basePath,filename);
try {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(userId);
Lunwen lw=new Lunwen();
lw.setLunwenDate(new Date());
lw.setLunwenName(filename);
lw.setLunwenPath(basePath+"/"+filename);
lunwenService.insertOrUpdate(student.getStudentId(),lw);
}else {
return false;
}
//相同文件会覆盖
lunwen.transferTo(lunewenFile);
return true;
} catch (Exception e) {
e.printStackTrace();
}
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
	}


}


@Controller
@RequestMapping("/lunwenController")
public class LunwenController {

@Autowired
private LunwenService lunwenService;
@Autowired
private StudentService studentService;

@RequestMapping("/gotoTstudentlunwen")
public String gotoTstudentlunwen(String studentId) {
return "redirect:/graduation/teacher/tstudentlunwen.html?studentId="+studentId;
}

@ResponseBody
@RequestMapping("/getLunwenBySid")
public Lunwen getLunwenBySid(String studentId,HttpSession session) {
if(studentId!=null&&!studentId.isEmpty()) {
Lunwen lunwen = lunwenService.getLunwenBySid(studentId);


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