——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于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版本的。
——————————CodeStart——————————
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 { 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 { 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()) {
}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);
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=021422322105200jl
https://javayms.pages.dev?id=021422322105200jl