基于javaweb+mysql的ssm+maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven毕业设计管理系统(java+ssm+jsp+jquery+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.数据库:5.7/8.0版本均可; 6.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
}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();
}
}
return false;
}
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateTeacherId")
public boolean updateTeacherId(HttpSession session,String teacherId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.updateTeacherId(teacherId,student.getStudentId());
}
}
return false;
}
@ResponseBody
@RequestMapping("/getUserByStudentId")
public User getUserByStudentId(String studentId) {
return studentService.getUserByStudentId(studentId);
}
@ResponseBody
@RequestMapping(value="/updateProjectNum",method=RequestMethod.PUT)
public boolean updateProjectNum(String studentId,String teacherId,String projectId) {
return studentService.updateProjectNum(studentId,teacherId,projectId);
}
@ResponseBody
@RequestMapping("/projectNum")
public boolean projectNum(String studentId) {
Student student=studentService.projectNum(studentId);
if(student!=null) {
if(student.getProjectNum()==1) {
return true;
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateNoProjectNum",method=RequestMethod.PUT)
public boolean updateNoProjectNum(String studentId,String projectId) {
boolean status1 = studentService.updateNoProjectNum(studentId);
boolean status2 = projectService.updateNoStudent(projectId);
if(status1&&status2) {
return true;
@Controller
@RequestMapping("/downController")
public class DownController {
@Autowired
private DownService downService;
@ResponseBody
@RequestMapping(value="/getSubDown",method=RequestMethod.GET)
public PageInfo getSubDown(@RequestParam(defaultValue="1")int pageNum,
@RequestParam(defaultValue="6")int pageSize,@RequestParam(defaultValue="1")int navigatePages) {
PageHelper.startPage(pageNum, pageSize);
List<Down> list = downService.getAllDown();
return new PageInfo<>(list, navigatePages);
}
@RequestMapping("/downloadResource")
public @ResponseBody String downloadResource(HttpSession session,HttpServletResponse response,
HttpServletRequest request,@RequestParam(required=true)String fileName) throws Exception {
if(fileName==null||fileName=="") {
return null;
}
String dataDir=request.getServletContext().getRealPath("/WEB-INF/file");
Path path=Paths.get(dataDir, fileName);
if(Files.exists(path)) {
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="+Utils.filenameEncoding(fileName, request));
try {
Files.copy(path, response.getOutputStream());
} catch (IOException e) {
@ResponseBody
@RequestMapping("/hasChooseProject")
public Student hasChooseProject(HttpSession session,HttpServletResponse response) {
response.setContentType("application/json;charset=utf-8");
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Project project = projectService.getProjectByStudentId(student.getStudentId());
if(project!=null) {
return student;
}
}
}
return new Student();
}
@ResponseBody
@RequestMapping(value="/updateProjectByStudentId/{projectId}",method=RequestMethod.PUT)
public boolean updateProjectByStudentId(HttpSession session,@PathVariable("projectId")String projectId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(!student.getStudentId().isEmpty()) {
return projectService.updateStudentIdByProjectId(student.getStudentId(), projectId);
}
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateTeacherId")
public boolean updateTeacherId(HttpSession session,String teacherId) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.updateTeacherId(teacherId,student.getStudentId());
}
}
return false;
}
@ResponseBody
@RequestMapping("/getUserByStudentId")
public User getUserByStudentId(String studentId) {
return studentService.getUserByStudentId(studentId);
}
@ResponseBody
}
@RequestMapping("/gotoTsureMdb")
public ModelAndView gotoTsureMdb(@RequestParam(required=true)String studentId) {
return new ModelAndView("/teacher/tsuremdb.html?studentId="+studentId);
}
}
@Controller
@RequestMapping("/zqjcController")
public class ZqjcController {
@Autowired
private ZqjcService zqjcService;
@Autowired
private StudentService studentService;
@ResponseBody
@RequestMapping(value="/insertSelective",method=RequestMethod.POST)
public boolean insertSelective(Zqjc zqjc) {
if(zqjc.getZqjcId()==null) {
return zqjcService.insertSelective(zqjc);
}else {
return zqjcService.updateByPrimaryKeySelective(zqjc);
}
}
}
@Controller
@RequestMapping("/teacherController")
public class TeacherController {
@Autowired
private TeacherService teacherService;
@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);
}
student.setUser(user);
student.setTeacher(teacherMapper.findTeacherByTeacherId(student.getTeacherId()));;
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
@RequestMapping("/editStudent")
public ModelAndView editStudent(ModelAndView model, String id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(student.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/editStudentCommit")
public ModelAndView editStudentCommit(ModelAndView model, User user, String sid) throws Exception {
UserExample userExample = new UserExample();
cn.lynu.model.UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUserIdEqualTo(user.getUserId());
userMapper.updateByExampleSelective(user, userExample);
user = userMapper.selectByPrimaryKey(user.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
Student student = studentMapper.selectByPrimaryKey(sid);
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/removeStudent")
public ModelAndView removeStudent(ModelAndView model, String id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
studentMapper.deleteByPrimaryKey(id);
userMapper.deleteByPrimaryKey(student.getUserId());
int size = 8;
int page = 1;
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
public Ktbg getKtbgStatus(String ktbgId) {
return ktbgService.getKtbgStatus(ktbgId);
}
@ResponseBody
@RequestMapping(value="/updateByPrimaryKeySelective",method=RequestMethod.POST)
public boolean updateByPrimaryKeySelective(Ktbg ktbg) {
return ktbgService.updateByPrimaryKeySelective(ktbg);
}
}
@Controller
@RequestMapping("/dabianController")
public class DabianController {
@Autowired
private DabianService dabianService;
@Autowired
private StudentService studentService;
@ResponseBody
@RequestMapping("/getThisStudentScore")
public Integer getThisStudentScore(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return dabianService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
return model;
}
@RequestMapping("/editStudent")
public ModelAndView editStudent(ModelAndView model, String id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(student.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/editStudentCommit")
public ModelAndView editStudentCommit(ModelAndView model, User user, String sid) throws Exception {
UserExample userExample = new UserExample();
cn.lynu.model.UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUserIdEqualTo(user.getUserId());
userMapper.updateByExampleSelective(user, userExample);
user = userMapper.selectByPrimaryKey(user.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
Student student = studentMapper.selectByPrimaryKey(sid);
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/removeStudent")
public ModelAndView removeStudent(ModelAndView model, String id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
studentMapper.deleteByPrimaryKey(id);
userMapper.deleteByPrimaryKey(student.getUserId());
int size = 8;
int page = 1;
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
students = getList(students, page, size);
if(page<=0) {
page = 1;
}
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;
}
}
}else {
user.setSex("女");
}
teacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
@RequestMapping("/editTeacher")
public ModelAndView editTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
model.addObject("teacher", teacher);
model.setViewName("/admin/editTeacher.jsp");
List<Dept> list = deptMapper.selectByExample(new DeptExample());
model.addObject("depts", list);
model.setViewName("/admin/editTeacher.jsp");
return model;
}
@RequestMapping("/editTeacherCommit")
public ModelAndView editTeacherCommit(ModelAndView model, User user, String sid, String desc, String zhic, int shiyanshi) throws Exception {
UserExample userExample = new UserExample();
cn.lynu.model.UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUserIdEqualTo(user.getUserId());
userMapper.updateByExampleSelective(user, userExample);
user = userMapper.selectByPrimaryKey(user.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
Teacher teacher = teacherMapper.selectByPrimaryKey(sid);
teacher.setZhicheng(zhic);
}
@Controller
@RequestMapping("/downController")
public class DownController {
@Autowired
private DownService downService;
@ResponseBody
@RequestMapping(value="/getSubDown",method=RequestMethod.GET)
public PageInfo getSubDown(@RequestParam(defaultValue="1")int pageNum,
@RequestParam(defaultValue="6")int pageSize,@RequestParam(defaultValue="1")int navigatePages) {
PageHelper.startPage(pageNum, pageSize);
List<Down> list = downService.getAllDown();
return new PageInfo<>(list, navigatePages);
}
@RequestMapping("/downloadResource")
public @ResponseBody String downloadResource(HttpSession session,HttpServletResponse response,
HttpServletRequest request,@RequestParam(required=true)String fileName) throws Exception {
if(fileName==null||fileName=="") {
return null;
}
String dataDir=request.getServletContext().getRealPath("/WEB-INF/file");
public void downZqjc(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndZqjc = studentService.getStudentAndZqjcBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndZqjc.getUser());
map.put("project", stuAndZqjc.getProject());
map.put("zqjc", stuAndZqjc.getZqjc());
map.put("teacher", stuAndZqjc.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"中期检查表.ftl","中期检查表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndZqjc = studentService.getStudentAndZqjcBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndZqjc.getUser());
map.put("project", stuAndZqjc.getProject());
if(stuAndZqjc.getZqjc()!=null) {
map.put("zqjc", stuAndZqjc.getZqjc());
}else {
map.put("zqjc", null);
}
map.put("teacher", stuAndZqjc.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"中期检查表.ftl","中期检查表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
if(zqjc.getZqjcId()==null) {
return zqjcService.insertSelective(zqjc);
}else {
return zqjcService.updateByPrimaryKeySelective(zqjc);
}
}
@ResponseBody
@RequestMapping("/getzqjcByStudentId")
public Zqjc getzqjcByStudentId(@RequestParam(value="studentId",required=false)String studentId,
HttpSession session) {
if(studentId!=null&&!studentId.isEmpty()) {
Zqjc zqjc = zqjcService.getzqjcByStudentId(studentId);
if(zqjc!=null) {
return zqjc;
}
}else {
User user = (User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Zqjc zqjc = zqjcService.getzqjcByStudentId(student.getStudentId());
if(zqjc!=null) {
return zqjc;
}
}
}
}
return new Zqjc();
}
@RequestMapping("/gotoTzqjc")
public String gotoTzqjc(@RequestParam(required=true)String studentId) {
return "/teacher/tzqjc.html?studentId="+studentId;
}
@ResponseBody
@RequestMapping(value="/updateByPrimaryKeySelective",method=RequestMethod.PUT)
public boolean updateByPrimaryKeySelective(Zqjc zqjc) {
return zqjcService.updateByPrimaryKeySelective(zqjc);
}
return pageInfo;
}
@ResponseBody
@RequestMapping(value="/getSubInformById",method=RequestMethod.GET)
public Inform getSubInformById(int informId) {
return informService.getSubInformById(informId);
}
}
public class Utils {
public static String getUUID() {
return UUID.randomUUID().toString().replaceAll("-", "");
}
public static String md5(String password) {
return password;
//return DigestUtils.md5DigestAsHex(password.getBytes());
}
//用来对下载文件名进行编码
public static String filenameEncoding(String filename, HttpServletRequest request) throws IOException {
String agent = request.getHeader("User-Agent"); //获取浏览器
if (agent.contains("Firefox")) {
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8"))
+ "?=";
}else {
filename = URLEncoder.encode(filename, "utf-8");
}
return filename;
}
public static void main(String[] args) {
System.out.println(md5("123456"));
}
}
@ResponseBody
@RequestMapping("/getKtbgStatus")
public Ktbg getKtbgStatus(String ktbgId) {
return ktbgService.getKtbgStatus(ktbgId);
}
@ResponseBody
@RequestMapping(value="/updateByPrimaryKeySelective",method=RequestMethod.POST)
public boolean updateByPrimaryKeySelective(Ktbg ktbg) {
return ktbgService.updateByPrimaryKeySelective(ktbg);
}
}
@Controller
@RequestMapping("/dabianController")
public class DabianController {
@Autowired
private DabianService dabianService;
@Autowired
private StudentService studentService;
//下载免答辩
@ResponseBody
@RequestMapping(value="/downMdb",method=RequestMethod.GET)
public void downMdb(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndMdb = studentService.getStudentAndMdbBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndMdb.getUser());
map.put("classInfo", stuAndMdb.getClassInfo());
map.put("project", stuAndMdb.getProject());
map.put("mdb", stuAndMdb.getMdb());
map.put("teacher", stuAndMdb.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"免答辩申请表.ftl","免答辩申请表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndMdb = studentService.getStudentAndMdbBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndMdb.getUser());
map.put("classInfo", stuAndMdb.getClassInfo());
map.put("project", stuAndMdb.getProject());
map.put("mdb", stuAndMdb.getMdb());
map.put("teacher", stuAndMdb.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"免答辩申请表.ftl","免答辩申请表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
}
}
}