👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
宿舍管理系统拥有三个角色,分别为系统管理员、宿舍管理员以及学生。其功能如下:
管理员:宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录管理、个人密码修改等
宿舍管理员:查看学生及添加缺勤记录、缺勤记录查看和修改
学生:查看自己的缺勤记录、修改密码
1.1 背景描述
宿舍管理系统是为学校或大学设计的一种软件系统,旨在简化和改进学生宿舍的管理和运作。该系统通常涵盖了多个方面,包括学生入住管理、房间分配、设施维护、安全管理、费用结算等功能。它可以帮助管理者更有效地监督宿舍资源的使用情况,确保学生的居住环境安全舒适。此外,它还可以提供学生自主选择室友和房间的功能,同时简化报修流程和费用支付方式,提高整体管理效率。随着技术的不断发展,许多宿舍管理系统还整合了智能设备和数据分析功能,以提供更智能化、便捷的服务。通过这些功能,宿舍管理系统可以帮助学校提升宿舍管理水平,增强学生的居住体验,并为管理者提供更全面的数据支持来做出决策。
2、项目技术
后端框架: servlet、mvc模式
前端框架:bootstrap、jsp
maven项目:否
2.1 MVC
MVC(Model-View-Controller)框架是一种用于构建Web应用程序的软件架构模式。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,包括数据库交互、数据处理和业务规则。视图负责用户界面的呈现,将数据以易于理解的形式展示给用户。控制器充当中间人,接收用户输入并调用相应的模型和视图来完成用户请求。MVC框架使代码分离,提高了应用程序的可维护性和扩展性。开发人员可以独立地修改模型、视图或控制器,而不会影响其他部分。这种分离也有助于多人合作开发项目。MVC框架还促进了前后端的分离,使前端工程师和后端工程师能够更好地协同工作,从而提高了开发效率。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
mysql5-8、tomcat8-10、JDK1.8+
4、功能截图+视频演示+文档目录
4.1系统登录
系统三种角色通过此界面登录宿舍管理系统,经过密码验证通过后,分别跳转至不同的页面
4.2系统管理员-宿舍楼管理
系统管理员可以添加宿舍楼,并能够根据宿舍楼名称搜索相对应的信息,同时系统管理员还可以修改和删除宿舍楼,以及给不同的宿舍楼设置管理员等功能。
4.3系统管理员-学生管理
系统管理员可以添加、修改、删除学生,同时可以按照宿舍楼、姓名、学号等条件搜索学生。系统管理员的其它功能与上述功能类似,且可以在视频中看到,这里不在赘述。
4.4宿舍管理员-缺勤记录管理
宿舍管理员可以通过姓名学号等条件搜索学生,并给学生添加、修改和删除相应的缺勤记录
4.5学生界面
学生查看自己的缺勤记录
5 、核心代码实现
5.1 配置代码
dbUrl=jdbc:mysql://localhost:3306/db_dorm?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true dbUserName=root dbPassword=root jdbcName=com.mysql.cj.jdbc.Driver pageSize=4
5.2 其它核心代码
package com.lero.web; import java.io.IOException; import java.sql.Connection; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.lero.dao.UserDao; import com.lero.model.Admin; import com.lero.model.DormManager; import com.lero.model.Student; import com.lero.util.DbUtil; public class LoginServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; DbUtil dbUtil = new DbUtil(); UserDao userDao = new UserDao(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); HttpSession session = request.getSession(); String userName = request.getParameter("userName"); String password = request.getParameter("password"); String remember = request.getParameter("remember"); String userType = request.getParameter("userType"); Connection con = null; try { con=dbUtil.getCon(); Admin currentAdmin = null; DormManager currentDormManager = null; Student currentStudent = null; if("admin".equals(userType)) { Admin admin = new Admin(userName, password); currentAdmin = userDao.Login(con, admin); if(currentAdmin == null) { request.setAttribute("admin", admin); request.setAttribute("error", "用户名或密码错误!"); request.getRequestDispatcher("login.jsp").forward(request, response); } else { if("remember-me".equals(remember)) { rememberMe(userName, password, userType,response); } else { deleteCookie(userName, request, response); } session.setAttribute("currentUserType", "admin"); session.setAttribute("currentUser", currentAdmin); request.setAttribute("mainPage", "admin/blank.jsp"); request.getRequestDispatcher("mainAdmin.jsp").forward(request, response); } } else if("dormManager".equals(userType)) { DormManager dormManager = new DormManager(userName, password); currentDormManager = userDao.Login(con, dormManager); if(currentDormManager == null) { request.setAttribute("dormManager", dormManager); request.setAttribute("error", "用户名或密码错误!"); request.getRequestDispatcher("login.jsp").forward(request, response); } else { if("remember-me".equals(remember)) { rememberMe(userName, password, userType,response); } else { deleteCookie(userName, request, response); } session.setAttribute("currentUserType", "dormManager"); session.setAttribute("currentUser", currentDormManager); request.setAttribute("mainPage", "dormManager/blank.jsp"); request.getRequestDispatcher("mainManager.jsp").forward(request, response); } } else if("student".equals(userType)) { Student student = new Student(userName, password); currentStudent = userDao.Login(con, student); if(currentStudent == null) { request.setAttribute("student", student); request.setAttribute("error", "用户名或密码错误!"); request.getRequestDispatcher("login.jsp").forward(request, response); } else { if("remember-me".equals(remember)) { rememberMe(userName, password, userType,response); } else { deleteCookie(userName, request, response); } session.setAttribute("currentUserType", "student"); session.setAttribute("currentUser", currentStudent); request.setAttribute("mainPage", "student/blank.jsp"); request.getRequestDispatcher("mainStudent.jsp").forward(request, response); } } } catch(Exception e) { e.printStackTrace(); } finally { try { dbUtil.closeCon(con); } catch (Exception e) { e.printStackTrace(); } } } private void rememberMe(String userName, String password, String userType, HttpServletResponse response) { Cookie user = new Cookie("dormuser", userName+"-"+password+"-"+userType+"-"+"yes"); user.setMaxAge(1*60*60*24*7); response.addCookie(user); } private void deleteCookie(String userName, HttpServletRequest request, HttpServletResponse response) { Cookie[] cookies=request.getCookies(); for(int i=0;cookies!=null && i6 、功能视频演示
学生宿舍管理系统
7 、 获取方式
👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:宿舍👇🏻
还没有评论,来说两句吧...