下面给你一套**「基于 JavaWeb + MySQL 的 JSP + Servlet 宿舍管理系统」完整设计与实现方案**,三角色权限清晰,功能完整,非常适合课程设计 / 实训 / 答辩。
这是老师最认可的 传统 JavaWeb MVC 架构
技术栈:JSP + Servlet + JDBC + MySQL + Session + Filter
一、系统角色与权限设计(重点)
1️⃣ 角色划分
| 角色 | 权限 |
|---|---|
| 超级管理员 | 管理宿舍管理员、楼栋、宿舍、学生 |
| 宿舍管理员 | 管理学生、宿舍、卫生、报修 |
| 学生 | 查看个人信息、宿舍信息、报修 |
2️⃣ 功能模块总览
🔑 公共模块
- 登录 / 退出
- 权限控制(Filter)
👑 超级管理员
- 宿舍管理员 CRUD
- 楼栋管理
- 宿舍管理
- 学生信息管理
🏠 宿舍管理员
- 学生入住 / 迁出
- 卫生检查记录
- 报修处理
🎓 学生
- 查看个人信息
- 查看宿舍信息
- 提交报修申请
二、系统整体架构(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 万字)
✔ 画系统结构图 + 流程图
✔ 打包成可直接运行项目
发表回复