菜鸟-创作你的创作

基于javaweb+mysql的jsp+servlet宿舍管理系统(超级管理员、宿舍管理员、学生)

下面给你一套**「基于 JavaWeb + MySQL 的 JSP + Servlet 宿舍管理系统」完整设计与实现方案**,三角色权限清晰功能完整非常适合课程设计 / 实训 / 答辩

这是老师最认可的 传统 JavaWeb MVC 架构
技术栈:JSP + Servlet + JDBC + MySQL + Session + Filter


一、系统角色与权限设计(重点)

1️⃣ 角色划分

角色权限
超级管理员管理宿舍管理员、楼栋、宿舍、学生
宿舍管理员管理学生、宿舍、卫生、报修
学生查看个人信息、宿舍信息、报修

2️⃣ 功能模块总览

🔑 公共模块

👑 超级管理员

🏠 宿舍管理员

🎓 学生


二、系统整体架构(MVC)

JSP (View)
  ↓
Servlet (Controller)
  ↓
DAO (Model)
  ↓
MySQL


三、项目结构(标准答辩结构)

DormitorySystem/
│
├── src/
│   ├── entity/
│   │   ├── User.java
│   │   ├── Dorm.java
│   │   ├── Building.java
│   │   └── Repair.java
│   │
│   ├── dao/
│   │   ├── UserDao.java
│   │   ├── DormDao.java
│   │   └── RepairDao.java
│   │
│   ├── servlet/
│   │   ├── LoginServlet.java
│   │   ├── LogoutServlet.java
│   │   ├── AdminServlet.java
│   │   ├── DormManagerServlet.java
│   │   └── StudentServlet.java
│   │
│   ├── filter/
│   │   └── AuthFilter.java
│   │
│   └── util/
│       └── DBUtil.java
│
├── WebContent/
│   ├── admin/
│   ├── manager/
│   ├── student/
│   ├── login.jsp
│   └── index.jsp
│
└── web.xml


四、数据库设计(MySQL)

1️⃣ 用户表(三角色)

CREATE TABLE user (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50),
  password VARCHAR(50),
  role INT COMMENT '0超级管理员 1宿舍管理员 2学生'
);


2️⃣ 楼栋表

CREATE TABLE building (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50)
);


3️⃣ 宿舍表

CREATE TABLE dorm (
  id INT PRIMARY KEY AUTO_INCREMENT,
  building_id INT,
  dorm_no VARCHAR(20),
  capacity INT,
  current_num INT
);


4️⃣ 学生信息表

CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user_id INT,
  dorm_id INT,
  name VARCHAR(50),
  gender VARCHAR(10)
);


5️⃣ 报修表

CREATE TABLE repair (
  id INT PRIMARY KEY AUTO_INCREMENT,
  student_id INT,
  content VARCHAR(200),
  status VARCHAR(20)
);


五、数据库工具类(DBUtil)

public class DBUtil {
    private static final String URL =
      "jdbc:mysql://localhost:3306/dormitory?useUnicode=true&characterEncoding=utf8";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";

    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}


六、实体类示例(User)

public class User {
    private int id;
    private String username;
    private String password;
    private int role; // 0 admin 1 manager 2 student
    // getter / setter
}


七、登录模块(核心)

LoginServlet

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        String u = req.getParameter("username");
        String p = req.getParameter("password");

        User user = new UserDao().login(u, p);
        if (user != null) {
            req.getSession().setAttribute("user", user);
            if (user.getRole() == 0) resp.sendRedirect("admin/index.jsp");
            else if (user.getRole() == 1) resp.sendRedirect("manager/index.jsp");
            else resp.sendRedirect("student/index.jsp");
        } else {
            resp.getWriter().write("登录失败");
        }
    }
}


八、权限过滤器(Filter,加分项)

@WebFilter("/*")
public class AuthFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpSession session = request.getSession();
        String uri = request.getRequestURI();

        if (uri.contains("login.jsp") || uri.contains("LoginServlet")) {
            chain.doFilter(req, res);
            return;
        }

        if (session.getAttribute("user") == null) {
            request.getRequestDispatcher("login.jsp").forward(req, res);
            return;
        }
        chain.doFilter(req, res);
    }
}


九、示例功能:学生报修

RepairServlet(学生)

@WebServlet("/StudentRepairServlet")
public class StudentRepairServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        int studentId = Integer.parseInt(req.getParameter("studentId"));
        String content = req.getParameter("content");

        new RepairDao().add(studentId, content);
        resp.sendRedirect("student/repair.jsp");
    }
}


十、JSP 示例(学生首页)

<h2>学生宿舍管理系统</h2>
<p>欢迎:${sessionScope.user.username}</p>
<a href="repair.jsp">提交报修</a>


十一、系统运行流程(答辩必背)

1️⃣ 用户登录
2️⃣ Session 保存用户信息
3️⃣ Filter 控制访问权限
4️⃣ Servlet 处理业务逻辑
5️⃣ DAO 操作 MySQL
6️⃣ JSP 展示数据


十二、课程设计加分建议(非常重要)

✅ 三角色权限控制
✅ Filter 登录拦截
✅ MVC 分层清晰
✅ 数据库设计规范
✅ 功能完整可演示


十三、我可以继续帮你做到什么程度?

我可以👇
补全所有 CRUD Servlet + JSP 页面
页面美化(后台管理风格)
写完整课程设计报告(1~1.2 万字)
画系统结构图 + 流程图
打包成可直接运行项目

退出移动版