文章目录

  • 1 前言
  • 2 系统目的
  • 3 系统功能需求
  • 4 开发环境及技术栈
  • 5 项目展示
    • 5.1普通用户
    • 5.2 教师用户
  • 6 项目代码实现
    • 6.1 maven资源过滤配置
    • 6.2 过滤器
    • 6.3 项目配置
    • 6.4 主要功能
      • 6.4.1 登录
      • 6.4.2 管理员功能
  • 6 最后

1 前言

Hi,同学们好呀,学长今天带大家复盘一个学长帮往届同学做的一个毕业作品

基于java web的毕业设计管理系统

2 系统目的

计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。每年毕业临近时,都有优良的毕业生需要进行毕业设计,这其中的首要关节就是课题的选择,以往指导老师都是采用人工手写方式给学生们提供相关的毕业课题提供学生选择,如果指导老师带领的学生比较多,或者是当年毕业的学生比较多,这样就造成学生的毕业课题选择很混乱,指导老师难于统计学生的毕业课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计,实时分配课题的一个管理平台来帮助学生、指导老师。

3 系统功能需求

此系统的开发,主要目的是使老师能更好地管理课程设计,也能使学生能更好地把自己想要选的课程准确无误的选出来,使在选择毕业课题时期的学生能有条不紊的进行。
该项目可以实现大学毕业设计中流程的大多是操作。主要有以下几点:

  • 1、管理员添加教师信息和学生信息

  • 2、教师网上报课题,管理员进行审核,审核通过的课题可以作为最终的选题开供学生选择

  • 3、学生选择课题,并会实时显示选题信息

  • 4、待选题结束之后,学生可以下载相关课题的任务书和开题报告模板

  • 5、教师可以提醒学生提交开题报告

  • 6、教师进行对自己管理的学生的开题报告进行审核,通过后可以进行之后的操作

  • 7、学生上传毕业论文,审核通过之后该学生具有答辩资格,可进行答辩

  • 8、教师最终把学生的开题报告进行提交,供管理员查看,保存

4 开发环境及技术栈

配置环境

  • jdk1.8
  • mysql5.1.47版本以上
  • idea

访问

  • localhost:8080/BSManager 这是的登陆到系统的主页。(包括学生和教师的登陆)
  • localhost:8080/BSManager/admin/index.jsp 这是登陆到管理员的登陆界面

技术栈

该系统使用的是SSM(Spring+SptingMVC+MyBatis)框架+mysql数据库

系统工程目录

5 项目展示

5.1普通用户

登录

主页

修改个人信息

课题管理

选择课题

进度管理

文档管理

提问管理

查看公告

查看成绩

5.2 教师用户

登录

主页

修改个人信息

课题管理

进度管理

审核开题报告

学生管理

文档管理

论文审核

发布公告

添加成绩

6 项目代码实现

6.1 maven资源过滤配置

<build><finalName>BSManager</finalName><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/webapp</directory><includes><include>**/*.jsp</include><include>**/*.css</include><include>**/*.js</include><include>**/*.jpg</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>

6.2 过滤器

package com.zc.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.zc.entity.User;/*** @date 2018-4-11* @author zhangC* 这是个过滤器 用于验证用户登陆 (查找session)* 把图片的路径过滤掉,否则会出现图片无法加载* **/
public class LoginFilter implements Filter {public void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest servletRequest = (HttpServletRequest)request;HttpServletResponse servletResponse = (HttpServletResponse) response;HttpSession session = servletRequest.getSession();String path = servletRequest.getRequestURI();System.out.println("当前路径:"+path);User currentUser = (User)session.getAttribute("currentUser");if (path.indexOf("index.jsp") > -1 || path.indexOf("teacherLogin.jsp") > -1|| path.indexOf("studentLogin.jsp") > -1 || path.indexOf("adminLogin.jsp") > -1|| path.indexOf("login") > -1 || path.indexOf("adminLogin.jsp") > -1 || path.indexOf(".jpg") > -1|| path.indexOf(".html") > -1 || path.indexOf(".png") > -1 || path.indexOf(".css") > -1|| path.indexOf(".js") > -1) {chain.doFilter(servletRequest, servletResponse);return;}if(currentUser == null || "".equals(currentUser)) {//servletResponse.sendRedirect("${pageContext.request.contextPath}/index.jsp");//servletRequest.getRequestDispatcher("/index.jsp").forward(request, response);servletResponse.sendRedirect("/BSManager/index.jsp");}else {chain.doFilter(servletRequest, servletResponse);}}public void destroy() {// TODO Auto-generated method stub}}

6.3 项目配置

spring-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置数据库的相关参数properties的属性 -->   <context:property-placeholder location="classpath:jdbc.properties"/><!-- 数据库连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 连接属性 --><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><!-- c3p0连结池的属性 --><property name="maxPoolSize" value="30"/><property name="minPoolSize" value="10"/><property name="autoCommitOnClose" value="false"/><property name="checkoutTimeout" value="10000"/><property name="acquireRetryAttempts" value="2"/></bean><!-- 配置SqlSessionFactroy对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"/><property name="typeAliasesPackage" value="com.zc.entity"/><property name="mapperLocations" value="classpath:mapping/*.xml"/></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value="com.zc.dao"></property></bean></beans>
spring-web.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 开启springMVC注解模式 --><mvc:annotation-driven/><!-- 静态资源默认servlet配置 --><mvc:default-servlet-handler/><!-- 配置jsp 显示viewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/jsp/"/></bean><!-- 扫描web相关的bean --><context:component-scan base-package="com.zc.web"/><!-- 文件上传和下载 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize"><value>20480000</value></property><property name="defaultEncoding"><value>utf-8</value></property></bean>

6.4 主要功能

6.4.1 登录

@RequestMapping(value="/admin/login")
public String adminLogin(String userNo,String password,Model model,HttpServletRequest request) {User currentUser = userService.login(userNo, password);if("".equals(currentUser)||currentUser==null) {model.addAttribute("message", "用户名或密码错误");return "error.jsp";}if(currentUser.getPermission()==3) {// request.getSession().setAttribute("userNo", userNo);HttpSession session = request.getSession();session.setMaxInactiveInterval(3600);session.setAttribute("currentUser", currentUser);//model.addAttribute("userNo", userNo);return "admin/main.jsp";}else {model.addAttribute("message", "当前用户不是管理员");return "error.jsp";}
}@RequestMapping(value="/teacher/login")
public String teacherLogin(String userNo,String password,Model model,HttpServletRequest request) {User currentUser = userService.login(userNo, password);if("".equals(currentUser)||currentUser==null) {model.addAttribute("message", "用户名或密码错误");return "error.jsp";}if(currentUser.getPermission()==2) {HttpSession session = request.getSession();session.setMaxInactiveInterval(3600);// 在t_user表的信息session.setAttribute("currentUser", currentUser);// 完整的teacher信息Teacher teacher = teacherService.showInfoByNo(userNo);int depId = teacher.getDepartmentId();String depName = departmentService.getNameById(depId);teacher.setDepartmentName(depName);session.setAttribute("teacher", teacher);//model.addAttribute("userNo", userNo);return "teacher/main.jsp";}else {model.addAttribute("message", "当前用户不是教师");return "error.jsp";}
}
@RequestMapping(value="/student/login")
public String studentLogin(String userNo,String password,Model model,HttpServletRequest request) {User currentUser = userService.login(userNo, password);if("".equals(currentUser)||currentUser==null) {model.addAttribute("message", "用户名或密码错误");return "error.jsp";}if(currentUser.getPermission()==1) {HttpSession session = request.getSession();session.setMaxInactiveInterval(3600);// t_user 表中的关于学生的信息session.setAttribute("currentUser", currentUser);// t_student 表中的信息Student student = studentService.getStudentByNO(userNo);int majorId = student.getMajorId();String majorName = majorService.getNameById(majorId);student.setMajorName(majorName);session.setAttribute("student", student);// model.addAttribute("userNo", userNo);return "student/main.jsp";}else {model.addAttribute("message", "当前用户不是学生");return "error.jsp";}
}

6.4.2 管理员功能

@RequestMapping(value="/showTeacherOne",method=RequestMethod.POST)
public String adminShowTeacherOne(Model model,HttpServletResponse response, @RequestParam(value="teacherNo",required=false) String teacherNo,@RequestParam(value="teacherName",required=false) String teacherName) throws Exception {if( ("".equals(teacherNo) || teacherNo == null) && ("".equals(teacherName) || teacherName == null) ) {adminShowAllTeacher(model, response);}else if((!"".equals(teacherNo) || teacherNo != null) &&("".equals(teacherName) || teacherName == null) ) {List<Teacher> teachers = teacherService.showTeacherOne1(teacherNo);if(teachers.isEmpty()) {model.addAttribute("showMessage", "没有与查询相匹配的教师信息");}else {for(int i=0;i<teachers.size();i++) {System.out.println(teachers.get(i));int depmentId = teachers.get(i).getDepartmentId();String departmentName = departmentService.getNameById(depmentId);teachers.get(i).setDepartmentName(departmentName);}}model.addAttribute("teacherList", teachers);System.out.println("教师集合:"+teachers);return "admin/adminTeacherManage.jsp";}else if(("".equals(teacherNo) || teacherNo == null) && (!"".equals(teacherName) || teacherName != null)) {teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");List<Teacher> teachers = teacherService.showTeacherOne2(teacherName);if(teachers.isEmpty()) {model.addAttribute("showMessage", "没有与查询相匹配的教师信息");}else {for(int i=0;i<teachers.size();i++) {System.out.println(teachers.get(i));int depmentId = teachers.get(i).getDepartmentId();String departmentName = departmentService.getNameById(depmentId);teachers.get(i).setDepartmentName(departmentName);}}model.addAttribute("teacherList", teachers);System.out.println("教师集合:"+teachers);return "admin/adminTeacherManage.jsp";} else {teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");teacherNo = new String(teacherNo.getBytes("iso-8859-1"),"utf-8");List<Teacher> teachers = teacherService.showTeacherOne3(teacherNo, teacherName);if(teachers.isEmpty()) {model.addAttribute("showMessage", "没有与查询相匹配的教师信息");}else {for(int i=0;i<teachers.size();i++) {System.out.println(teachers.get(i));int depmentId = teachers.get(i).getDepartmentId();String departmentName = departmentService.getNameById(depmentId);teachers.get(i).setDepartmentName(departmentName);}}model.addAttribute("teacherList", teachers);System.out.println("教师集合:"+teachers);return "admin/adminTeacherManage.jsp";}return "admin/adminTeacherManage.jsp";
}@RequestMapping(value="/studentAdd",method=RequestMethod.POST)
public String addStudent(HttpServletRequest request,String studentNo, String studentName,String sex,String grade,String phone,String major,Model model) throws Exception {studentNo = new String(studentNo.getBytes("iso-8859-1"),"utf-8");studentName = new String(studentName.getBytes("iso-8859-1"),"utf-8");sex = new String(sex.getBytes("iso-8859-1"),"utf-8");grade = new String(grade.getBytes("iso-8859-1"),"utf-8");User user = (User)request.getSession().getAttribute("currentUser");String inputMan = user.getUserNo();//inputMan = new String(inputMan.getBytes("iso-8859-1"),"utf-8");phone = new String(phone.getBytes("iso-8859-1"),"utf-8");major = new String(major.getBytes("iso-8859-1"),"utf-8");if(studentNo== null || "".equals(studentNo)||studentName == null || "".equals(studentName) || sex==null ||"".equals(sex) || grade == null || "".equals(grade) || phone == null || "".equals(phone) || major==null ||"".equals(major)) {model.addAttribute("message", "存在未填写的信息");return "admin/main.jsp";}else {Date currentTime = new Date();Student student = new Student();student.setStudentNo(studentNo);student.setStudentName(studentName);student.setSex(sex);student.setGrade(grade);student.setInputMan(inputMan);student.setPhone(phone);student.setMajorId(Integer.parseInt(major));student.setLastModifyTime(currentTime);int addNum = studentService.addStudent(student);// System.out.println("添加数目:"+addNum);model.addAttribute("message", "成功添加一条学生信息");return "admin/adminStudentAdd.jsp";}}

6 最后

【毕业设计】基于SSM的大学毕业设计管理系统相关推荐

  1. 毕业设计-基于SSM框架大学教务管理平台项目开发实战教程(附源码)

    文章目录 1.项目简介 2.项目收获 3.项目技术栈 4.测试账号 5.项目部分截图 6.常见问题 毕业设计-基于SSM框架大学教务管理平台项目实战教程-附源码 课程源码下载地址:https://do ...

  2. java计算机毕业设计基于ssm的少儿编程管理系统(源代码+数据库+Lw文档)

    项目介绍 在国家重视教育影响下,教育部门的密确配合下,对教育进行改革.多样性.质量等等的要求,使教育系统的管理和运营比过去十年前更加理性化.依照这一现实为基础,设计一个快捷而又方便的网上少儿编程教育网 ...

  3. 毕业设计-基于SSM实现垃圾分类信息管理系统

     项目编号:BS-XX-069 开发工具:IDEA / ECLIPSE 数据库:MYSQL5.7 应用服务器:TOMCAT8.5.31 JDK: 1.8 开发技术:Spring+Springmvc+M ...

  4. 计算机毕业设计-基于SSM的网上书店管理系统

    项目背景 本网上系统是针对目前网上的实际需求,从实际工作出发,对过去的网上系统存在的问题进行分析,结合计算机系统的结构.概念.模型.原理.方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和j ...

  5. 计算机毕业设计-基于SSM的学生成绩管理系统

    项目摘要 系统开发技术 Java语言 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护.它还提供了对EJB(Enterprise JavaBeans)的全面支持,java serv ...

  6. [附源码]java+ssm计算机毕业设计基于SSM的饭店餐饮管理系统09695(源码+程序+数据库+部署)

    项目运行 项目含有源码(见文末).文档.程序.数据库.配套开发软件.软件安装教程 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ E ...

  7. SSM+阳光大学宿舍管理系统 毕业设计-附源码211714

    基于SSM阳光大学宿舍管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流, ...

  8. java计算机毕业设计基于Ssm学生信息管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计基于Ssm学生信息管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计基于Ssm学生信息管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈 ...

  9. 毕业设计-基于SSM医院信息管理系统

    环境:开发工具:idea,数据库:MySQL5.7 jdk1.8 架构:springMVC,前端jsp 主要功能 管理员: 员工管理(添加员工.修改员工.删除员工.查询指定员工.导出数据) 岗位管理( ...

最新文章

  1. php 文件限速下载代码
  2. 高级特性-多线程,GUI
  3. mybaits十六:使用choose标签实现分支选择
  4. 关于Docker目录挂载的总结
  5. java中的缩小_在Java中,加宽转换(隐式)和缩小转换(显式)之间有什么区别?...
  6. strut2开发环境的搭建
  7. Python判断函数与方法
  8. Linux下的Asp.Net配置指南
  9. python简介pdf_Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
  10. 平时如何管理你的项目?
  11. c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象
  12. ADO.NET访问数据集的表、行和列
  13. MATLAB数字滤波器波形设计
  14. 圆周率小数点后1千位(附计算圆周率源代码)
  15. 2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!
  16. 出现Ncat: bind to 0.0.0.0:9999: Address already in use. QUITTING.如何解决?
  17. UGUI优化之路- Image的Sliced优化
  18. a标签href=”javascript;void(0)
  19. 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通
  20. ResponseEntity

热门文章

  1. Intel 82579v Gigabit network Server2008 R2网卡驱动
  2. QFP、LQFP、TQFP、FQFP封装的区别
  3. vue-admin-template网盘下载
  4. GD32 RT-Thread RTC驱动函数
  5. Tplink服务器停止响应,新买的tp-link变砖了,修复时候没有说按p停止
  6. SaaS launch Kit成回收宝和友盟云合作纽带,帮助提升3倍上云效率
  7. 移动端网页特效(二)
  8. android sip 网络 ip 电话
  9. 如何给U盘一个无法删除的文件夹
  10. 基于51单片机的人体红外探测防盗报警(仿真+源码+全套资料)