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

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

540023172402

550023172402

560023172402

580023172402

590023172402

000023182402

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

1、本系统使用SSM框架

2、有管理员、教师、学生三种角色,管理员使用admin/admin登录,教师使用t_01/6666登录,学生使用142001/111登录

3、管理员有最大权限,可以进行信息管理、教师管理、学生管理、选题管理、公告管理、查看已上传等;

4、教师角色包括个人信息管理、选题管理、进度管理、学生管理、疑问管理、文档管理、成绩管理

5、学生角色包括个人信息管理、课题管理、进度管理、文档管理、提问管理、查看答辩资格、成绩管理

管理员用户:admin 密码:admin

教师用户:t_01 密码:6666

学生用户:142001 密码:111

环境要求

1.JDK配置

首先安装好JDK,我一般使用1.8版本的JDK。

2.安装IDEA 3.MySQL安装 4.   IDEA/Eclipse配置Tomcat 8

MySQL一般安装5.7版本的。

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
	sb.append("的学生,选择了");
sb.append(thesisName);


String infoMessage = sb.toString();

this.realTimeTopicMessageOn = infoMessage;
model.addAttribute("realTimeTopicMessage", realTimeTopicMessageOn);

studentThesisResult(response, request, model);
return "student/studentThesisResult.jsp";
}

@RequestMapping(value="/deleteChosenTopic")
public String studentDeleteChosenTopic(Model model,int studentId) throws Exception {

// System.out.println(studentId);
StudentTaskBookOpening stbo = studentService.getSTBOInfoById(studentId);
if(stbo==null||"".equals(stbo)) {
int num = studentService.deleteTopic(studentId);
System.out.println("成功退选 :"+num+"条数据");
model.addAttribute("message", "成功退选");

return "student/main.jsp";
}else {
model.addAttribute("message", "已上传开题报告,不可退选");
return "student/main.jsp";
}
}

@RequestMapping(value="/fileDownload")
public ResponseEntity<byte[]> fileDownload(HttpServletRequest request, @RequestParam("filePath") String filePath,@RequestParam("fileName") String fileName, Model model) throws Exception {
fileName = new String(fileName.getBytes("iso-8859-1"),"utf-8");
filePath = new String(filePath.getBytes("iso-8859-1"),"utf-8");
File file = new File(filePath);
HttpHeaders headers = new HttpHeaders();
String downloadFile = new String(fileName.getBytes("utf-8"), "iso-8859-1");
headers.setContentDispositionFormData("attachment", downloadFile);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED);
}

@RequestMapping(value="/uploadTaskBook")
public String studentUploadTaskBook(HttpServletRequest request, Model model,@RequestParam("file") MultipartFile file) throws Exception {

Student currentUser = (Student)request.getSession().getAttribute("student");
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
}

@RequestMapping(value="/modifyThesisTitle",method=RequestMethod.GET)
public String teacherModifyThesisTitleForm() {
return "teacher/teacherModifyThesisTitle.jsp";
}

@RequestMapping(value="/thesisResult",method=RequestMethod.GET)
public String teacherThesisResultForm(Model model,HttpServletRequest request) {
teacherShowAllThesisTitle(model, request);

return "teacher/teacherThesisResult.jsp";
}

@RequestMapping(value="/uploadTaskBook",method=RequestMethod.GET)
public String teacherUploadTaskBookForm() {
return "teacher/teacherUploadTakeBook.jsp";
}

@RequestMapping(value="/uploadOpening",method=RequestMethod.GET)
public String teacherUploadOpeningForm() {
return "teacher/teacherUploadOpeningReport.jsp";
}

@RequestMapping(value="/checkOppening")
public String teacherCheckOppeningForm(HttpServletRequest request,Model model) {
Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");
int teacherId = currentTeacher.getId();
List<Student> students = teacherService.getAllStudentInfo(teacherId);
for(int i=0;i<students.size();i++) {
int studentId = students.get(i).getId();
StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);
if(STBO == null || "".equals(STBO)) {

}else {
String openingPath = STBO.getStudentOpeningResport();
students.get(i).setStudentOpeningPath(openingPath);
String[] str = openingPath.split("\\\\");
String fileName = str[str.length-1].toString();
students.get(i).setStudentOpeningName(fileName);
int completion = STBO.getCompletion();
if(completion==0) {
students.get(i).setCompletionName("未审核");
}else if(completion==1) {
students.get(i).setCompletionName("未通过");
}else {
students.get(i).setCompletionName("审核通过");;
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(value="/qualification")
public String studentQualification(HttpServletRequest request,Model model) {
Student currentUser = (Student)request.getSession().getAttribute("student");
int studentId = currentUser.getId();

ThesisInformation thesis = studentService.getThesisInforInfoByStudentId(studentId);

if(thesis == null || "".equals(thesis)) {
model.addAttribute("message", "不具备答辩资格");
}else {
int status = thesis.getStatus();
if(status == 0) {
model.addAttribute("message", "不具备答辩资格");
}else if(status == 1) {
model.addAttribute("message", "不具备答辩资格");
}else {
model.addAttribute("message", "你已具备答辩资格");
}

}
return "student/studentQualifications.jsp";
}


@RequestMapping(value="/studentDoubt")
public String studentDoubtForm() {
return "student/studentDoubt.jsp";
}

@RequestMapping(value="/studentDoubtList")
public String studentDoubtListForm(Model model,HttpServletRequest request) {
Student currentUser = (Student)request.getSession().getAttribute("student");
int studentId = currentUser.getId();
List<Doubt> doubtList = studentService.getAllDoubtByStudent(studentId);
for(int i= 0;i<doubtList.size();i++) {
String answer = doubtList.get(i).getAnswer();
if(answer == null || "".equals(answer)) {
doubtList.get(i).setAnswer("教师还未做出解答");
}
}
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
	String studentNo = currnetUser.getUserNo();
Student student = studentService.getStudentByNO(studentNo);
int studentId = student.getId();
Topic topic = studentService.chosenThesisTitle(studentId);
if(topic == null || "".equals(topic)) {
model.addAttribute("topicMessage", "还未选择课题");
model.addAttribute("realTimeTopicMessage", realTimeTopicMessageOn);

return "student/main.jsp";
}else {
int thesisId = topic.getThesisId();

ThesisTitle theisTitle = teacherService.getThesisById(thesisId);
String topicName = theisTitle.getThesisName();

model.addAttribute("topicName", topicName);

model.addAttribute("realTimeTopicMessage", realTimeTopicMessageOn);

return "student/studentThesisResult.jsp";
}

}

@RequestMapping(value="/viewTaskOpening")
public String studentViewTaskOpening(HttpServletRequest request,Model model) {
Student currentUser = (Student)request.getSession().getAttribute("student");
int studentId = currentUser.getId();
Topic topic = studentService.chosenThesisTitle(studentId);
if(topic == null || "".equals(topic)) {
model.addAttribute("message", "尚未选择课题");
return "student/studentViewTaskBookAndOpening.jsp";
}else {
int thesisId = topic.getThesisId();
TeacherTaskBookOpening ttbo = studentService.getFilePathByThesisId(thesisId);
if(ttbo==null || "".equals(ttbo)) {
return "student/studentViewTaskBookAndOpening.jsp";
}else {
// 获得数据库中的文件目录;
String taskBookPath = ttbo.getTaskBook();
String openingPath = ttbo.getOpeningReport();

Map<String, String> fileList = new HashMap<String, String>();

if(taskBookPath == null || "".equals(taskBookPath)) {

}else {
String[] str1 = taskBookPath.split("\\\\");
String taskBookName = str1[str1.length-1].toString();
fileList.put(taskBookName, taskBookPath);
}

if(openingPath == null || "".equals(openingPath)) {
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
	top.setThesisId(topic);
Date time = new Date();
top.setSelectTime(time);

int num = studentService.addTopicToDb(top);
System.out.println("添加了"+num+"个选题");

Student student = studentService.getStudentNameById(id);
String studentNo = student.getStudentNo();

ThesisTitle thesis = studentService.getThesisInfoByid(topic);
String thesisName = thesis.getThesisName();


StringBuffer sb = new StringBuffer();
sb.append("学号为");
sb.append(studentNo);
sb.append("的学生,选择了");
sb.append(thesisName);


String infoMessage = sb.toString();

this.realTimeTopicMessageOn = infoMessage;
model.addAttribute("realTimeTopicMessage", realTimeTopicMessageOn);

studentThesisResult(response, request, model);
return "student/studentThesisResult.jsp";
}

@RequestMapping(value="/deleteChosenTopic")
public String studentDeleteChosenTopic(Model model,int studentId) throws Exception {

// System.out.println(studentId);
StudentTaskBookOpening stbo = studentService.getSTBOInfoById(studentId);
if(stbo==null||"".equals(stbo)) {
int num = studentService.deleteTopic(studentId);
System.out.println("成功退选 :"+num+"条数据");
model.addAttribute("message", "成功退选");

return "student/main.jsp";
}else {
model.addAttribute("message", "已上传开题报告,不可退选");
return "student/main.jsp";
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
		File deleteFile = new File(filePath);
String message = "";
boolean flag = false;
if(deleteFile.exists()) {
//message = "删除成功";
// flag = deleteFile.delete();
// if(flag ) {
// message = "删除成功";
// }else {
// message = "删除失败";
// }

}else {
message = "文件不存在";
}

String thesisTitleId = teacherService.getThesisTitleByFilePath(filePath);
int thesisId = Integer.parseInt(thesisTitleId);
int dbThesisId=0;
TeacherTaskBookOpening TTBO1 = teacherService.getThesisIdByTask(filePath);
TeacherTaskBookOpening TTBO2 = teacherService.getThesisIdByOpening(filePath);
if(TTBO1 == null || "".equals(TTBO1)) {

}else {
dbThesisId = TTBO1.getThesisTitleId();
int num = teacherService.resetTask(dbThesisId);
System.out.println("成功把task置为null:"+num+"条");
}

if(TTBO2 ==null || "".equals(TTBO2)) {

}else {
dbThesisId = TTBO2.getThesisTitleId();
int num = teacherService.resetOpening(dbThesisId);
System.out.println("成功把Opening置为null:"+num+"条");

}
TeacherTaskBookOpening tt = teacherService.getTaskOpeningByThesisId(thesisId);


if((tt.getOpeningReport()==null || "".equals(tt.getOpeningReport())) &&(tt.getTaskBook()==null || "".equals(tt.getTaskBook())) ) {
int num = teacherService.deleteTaskBookOpening(thesisId);


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