基于javaweb的毕业设计管理系统(java+jsp+javascript+servlet+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的毕业设计管理系统(java+JSP+JavaScript+servlet+Mysql)
项目介绍
本项目包含管理员、教师、学生三种角色;
管理员角色包含以下功能:
管理员登录,查看首页,学院管理,专业管理,班级管理,用户注册,发布校级通知等功能。
教师角色包含以下功能: 教师登录,查看首页,查看并修改个人信息,查看待审批课题,查看所带课题状态,查看已提交课题信息,消息管理等功能。
学生角色包含以下功能: 学生登录,查看首页,查看并修改个人信息,查看选题信息,查看开题报告,查看中期检查,下载论文,消息管理等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈 JSP+CSS+JavaScript+servlet+mysql
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中Connector.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/jsp_bysjsys/ 登录 学生账号/密码: student/123456 指导教师账号/密码: teacher/123456 管理员账号/密码:admin/admin
用户管理控制层:
@Controller
public class UserController {
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@Autowired
private AdminService adminService;
/**
- 用户登录
*/
@RequestMapping(value = “/login.action”, method = RequestMethod.POST)
public String login(String usercode, String password, String role, Model model, HttpSession session) {
if(role.equals(“学生”)) {
Student student = studentService.findStudent(usercode, password);
if(student!=null) {
User user = new User();
user.setRole(role);
session.setAttribute(“USER”, user);
session.setAttribute(“USER_INFO”, student);
return “redirect:student/toindex.action”;
else if(role.equals(“教师”)) {
Teacher teacher = teacherService.findTeacher(usercode, password);
if(teacher!=null) {
User user = new User();
user.setRole(role);
session.setAttribute(“USER”, user);
session.setAttribute(“USER_INFO”, teacher);
return “redirect:teacher/roleset.action”;
else if(role.equals(“管理员”)) {
Admin admin = adminService.findAdmin(usercode, password);
if(admin!=null) {
User user = new User();
user.setRole(role);
session.setAttribute(“USER”, user);
session.setAttribute(“USER_INFO”, admin);
return “redirect:admin/toindex.action”;
model.addAttribute(“msg”, “账号或密码错误,请重新输入!”);
return “login”;
/**
- 退出登录
*/
@RequestMapping(value = “/logout.action”)
public String logout(HttpSession session) {
// 清除Session
session.invalidate();
// 重定向到登录页面的跳转方法
return “redirect:tologin.action”;
/**
- 向用户登陆页面跳转
*/
@RequestMapping(value = “/tologin.action”, method = RequestMethod.GET)
public String toLogin() {
return “login”;
学生管理控制层:
@Controller
public class StudentController {
private static final int PAGE_SIZE = 5;
@Autowired
private StudentService studentService;
@Autowired
private TitleService titleService;
@Autowired
private TeacherService teacherService;
@Autowired
private SelectTitleService selectTitleService;
@Autowired
private ProjBookService projBookService;
@Autowired
private OpenReportService openReportService;
@Autowired
private MidCheckService midCheckService;
@Autowired
private ThesisService thesisService;
@Autowired
private ThesisAttachmentService thesisAttachmentService;
@Autowired
private ScoreProportionService scoreProportionService;
/**
- 向学生主页面跳转
*/
@RequestMapping(value = “/student/toindex.action”, method = RequestMethod.GET)
public ModelAndView toIndex(HttpSession session) {
Student student = (Student)session.getAttribute(“USER_INFO”);
int sum = titleService.findTitleSum(student.getMajor(),“已审批”);
int s = selectTitleService.findSelTitleListByState(student.getMajor(),“同意”);
int s1 = selectTitleService.findSelTitleListByState(student.getMajor(),“待同意”);
ModelAndView mv = new ModelAndView();
mv.addObject(“sum”, sum);
mv.addObject(“s”, s);
mv.addObject(“s1”, s1);
mv.setViewName(“views/user/student/index”);
return mv;
/**
- 向个人信息修改页面跳转(学生)
*/
@RequestMapping(value = “/student/topersonInfo.action”)
public String topersonInfo(HttpSession session) {
Student student = (Student)session.getAttribute(“USER_INFO”);
student = studentService.findStudent(student.getsId(), student.getsPwd());
session.setAttribute(“USER_INFO”, student);
return “views/user/student/personInfo”;
/**
- 学生信息修改
*/
@RequestMapping(value = “/student/editInfo.action”)
@ResponseBody
public String editInfo(Student student) {
int rows =0;
try{
rows = studentService.editInfo(student);
}catch(Exception e){
rows =0;
if(rows > 0){
System.out.println(“OK”);
return “OK”;
}else{
System.out.println(“FAIL”);
return “FAIL”;
/**
- 向密码修改页面跳转(学生)
*/
@RequestMapping(value = “/student/toeditPwd.action”)
public String toeditPwd(HttpSession session) {
Student student = (Student)session.getAttribute(“USER_INFO”);
student = studentService.findStudentById(student.getsId());
session.setAttribute(“USER_INFO”, student);
return “views/user/student/editPwd”;
/**
- 学生密码修改
*/
@RequestMapping(value = “/student/editPwd.action”)
@ResponseBody
public String editPwd(Student student) {
int rows =0;
try{
rows = studentService.editInfo(student);
}catch(Exception e){
rows =0;
if(rows > 0){
return “OK”;
}else{
return “FAIL”;
/**
- 向选题页面跳转(学生)
*/
@RequestMapping(value = “/student/totitlelist.action”)
public ModelAndView totitlelist(HttpSession session, @ModelAttribute(“title”) Title title,
@RequestParam(value=“pageNum”,required=false,defaultValue=“1”) int pageNum) {
// pageNo 页码 pageSize 每页记录数
PageHelper.startPage(pageNum, PAGE_SIZE);
Student student = (Student)session.getAttribute(“USER_INFO”);
List
PageInfo
ModelAndView mv = new ModelAndView();
mv.addObject(“title”, title);
mv.addObject(“pageInfo”, pageInfo);
mv.setViewName(“views/user/student/titlelist”);
return mv;
/**
- 查看课题详情ById(学生)
*/
@RequestMapping(“/student/getTitleInfoById.action”)
@ResponseBody
public Title getTitleInfoById(Long titlId) {
Title titleInfo = titleService.findTitleById(titlId);
System.out.println(titleInfo.getMajor());
return titleInfo;
/**
- 选择课题(学生)
*/
@RequestMapping(“/student/selecttitle.action”)
@ResponseBody
public String Selecttitle(HttpSession session, SelectTitle selectTitle) {
Student student = (Student)session.getAttribute(“USER_INFO”);
selectTitle.setsId(student.getsId());
SelectTitle result = selectTitleService.getSelectTitle(selectTitle);
if(result!=null) {
return “FAIL1”;
Title title = new Title();
title.setTitlId(selectTitle.getTitlId());
List list = selectTitleService.findSelTitleListBysIdAndState(student.getsId(), “待同意”);
if(list.size()!=0) {
return “FAIL4” ;
list = selectTitleService.findSelTitleListBysIdAndState(student.getsId(), “同意”);
if(list.size()!=0) {
return “FAIL2” ;
else {
int rows = 0;
try{
selectTitle.setSeltitlState(“待同意”);
rows = selectTitleService.createSelectTitle(selectTitle);
}catch(Exception e){
rows = 0;
if(rows > 0){
System.out.println(“选择课题成功!!!!”);
return “OK”;
}else{
System.out.println(“选择课题失败!!!!”);
return “FAIL3”;
/**
- 查看已选课题(学生)
*/
@RequestMapping(“/student/selTitleById.action”)
@ResponseBody
public ModelAndView selTitleById(HttpSession session, @ModelAttribute(“title”) Title title,
@RequestParam(value=“pageNum”,required=false,defaultValue=“1”) int pageNum) {
// pageNo 页码 pageSize 每页记录数
PageHelper.startPage(pageNum, PAGE_SIZE);
Student student = (Student)session.getAttribute(“USER_INFO”);
List
PageInfo
ModelAndView mv = new ModelAndView();
List list1 = teacherService.findTeacherBydept(student.getDept());
int i = selectTitleService.findSelTitle(student.getsId());
mv.addObject(“title”, title);
mv.addObject(“i”, i);
mv.addObject(“Teacher”, list1);
mv.addObject(“pageInfo”, pageInfo);
mv.setViewName(“views/user/student/selecttitlelist”);
return mv;
/**
- 删除已选课题(学生退选)
*/
@RequestMapping(“/student/delTitleInfoById.action”)
@ResponseBody
public String delTitleInfoById(HttpSession session ,Long id) {
Student student = (Student)session.getAttribute(“USER_INFO”);
int rows = selectTitleService.deleteCustomer(id,(String)student.getsId());
if(rows > 0){
Title title = new Title();
title.setTitlId(id);
if(titleService.findTitleById(id).getTitlState().equals(“待指导教师审批”)) {
titleService.deleteTitle(id);
else {
title.setSelState(“未被选择”);
titleService.updateTitleSelStateById(title);
return “OK”;
}else{
return “FAIL”;
/**
- 任务书文件列表(学生)
*/
@RequestMapping(“/student/projBooklist.action”)
public ModelAndView projBooklist(HttpSession session ,@ModelAttribute(“pro