# 学生信息管理系统 — 业务扩展任务表 > 基于现有 **JSP + Servlet + JavaBean + JDBC + DAO** 架构,按模块划分扩展任务。 > 难度:⭐ 入门 · ⭐⭐ 中等 · ⭐⭐⭐ 较难 · ⭐⭐⭐⭐ 高级 > 优先级:P0 必做推荐 · P1 建议做 · P2 进阶 · P3 选做 --- ## 一、总览 | 阶段 | 目标 | 建议任务数 | 预估总工时 | |------|------|-----------|-----------| | 第一阶段 | 夯实基础安全与数据规范 | 5 项 | 15~20 h | | 第二阶段 | 丰富核心业务实体 | 6 项 | 25~35 h | | 第三阶段 | 流程、统计与高级功能 | 6 项 | 30~40 h | | 第四阶段 | 架构升级与工程化 | 4 项 | 20~30 h | --- ## 二、扩展任务明细 ### 模块 A:安全与账户体系 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | A-01 | 密码加密存储 | 数据库不再明文存密码,提升安全性 | `User` 表、`UserDao`、登录/注册 Servlet | MD5 或 BCrypt;注册加密、登录比对 | ⭐⭐ | P0 | 3 h | | A-02 | 登录失败锁定 | 连续输错密码 5 次锁定账户 30 分钟 | 新增 `login_log` 表、登录 Servlet | Session/Redis 计数;Ajax 提示剩余次数 | ⭐⭐ | P1 | 4 h | | A-03 | 找回密码 | 用户通过邮箱验证码重置密码 | 邮件发送工具类、重置密码 Servlet/JSP | JavaMail 或模拟验证码;验证码有效期 | ⭐⭐⭐ | P1 | 6 h | | A-04 | 记住我 / 自动登录 | 勾选后 7 天内免登录 | Cookie 工具类、LoginServlet、Filter | Token 存 Cookie + 数据库;HttpOnly | ⭐⭐⭐ | P2 | 5 h | | A-05 | 在线用户管理 | 管理员查看当前在线用户并强制下线 | Session 监听器、在线用户列表页 | `HttpSessionListener`;Session 映射表 | ⭐⭐⭐ | P2 | 5 h | | A-06 | 三级角色权限 | 新增「教师」角色,三类用户权限隔离 | `User.role` 扩展、RBAC 表、AuthFilter | 角色-权限-菜单;Filter 细粒度拦截 | ⭐⭐⭐⭐ | P1 | 8 h | --- ### 模块 B:学生档案扩展 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | B-01 | 院系 / 专业 / 班级 | 学生归属组织结构,支持按班级查询 | 新增 `department`、`major`、`clazz` 表 | 多表关联;下拉级联 Ajax | ⭐⭐ | P0 | 6 h | | B-02 | 学号自动生成 | 注册或录入时按规则生成唯一学号 | 学号生成工具类、新增用户逻辑 | 规则如 `2026CS001`;唯一约束 | ⭐⭐ | P1 | 3 h | | B-03 | 学生状态管理 | 在读 / 休学 / 毕业 / 退学等状态流转 | `users` 增加 `status` 字段、状态变更 Servlet | 状态枚举;变更记录;列表筛选 | ⭐⭐ | P1 | 4 h | | B-04 | 头像上传 | 用户上传个人头像并展示 | 文件上传 Servlet、存储路径配置 | `commons-fileupload`;大小/格式校验 | ⭐⭐ | P1 | 4 h | | B-05 | 学生详情页 | 单独页面展示完整档案(含班级、状态等) | 详情 Servlet、详情 JSP | 多表 JOIN 查询;EL/JSTL 展示 | ⭐⭐ | P1 | 3 h | | B-06 | 批量导出 Excel | 管理员按条件导出学生信息为 `.xlsx` | 导出 Servlet、Apache POI 依赖 | POI 写 Excel;条件筛选与 CSV 导出并存 | ⭐⭐⭐ | P1 | 5 h | | B-07 | 高级组合搜索 | 多条件(班级+性别+年龄区间+状态)联合查询 | 列表 Servlet、DAO 动态 SQL | `StringBuilder` 拼接 SQL;防注入用 PreparedStatement | ⭐⭐⭐ | P2 | 6 h | --- ### 模块 C:课程与成绩 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | C-01 | 课程管理 CRUD | 管理员维护课程(编号、名称、学分、授课教师) | `course` 表、CourseDao、Servlet、JSP | 标准 DAO CRUD;分页列表 | ⭐⭐ | P1 | 6 h | | C-02 | 学生选课 | 一般用户在线选课,限制人数与重复选课 | `enrollment` 表、选课 Servlet | 事务控制;名额校验;已选课程列表 | ⭐⭐⭐ | P1 | 8 h | | C-03 | 成绩录入 | 教师/管理员录入课程成绩 | `score` 表、成绩 Servlet | 权限校验;批量录入表单 | ⭐⭐⭐ | P1 | 6 h | | C-04 | 成绩查询 | 学生查看本人成绩,管理员查看全班成绩 | 成绩列表 JSP、查询 Servlet | 按角色过滤数据;GPA 简单计算 | ⭐⭐ | P1 | 4 h | | C-05 | 成绩统计报表 | 按课程统计平均分、最高/最低分、及格率 | 统计 DAO、报表 JSP | SQL 聚合函数 `AVG/MAX/MIN/COUNT` | ⭐⭐⭐ | P2 | 5 h | | C-06 | 课表展示 | 学生个人课表(按周视图或列表) | 课表查询 Servlet、课表 JSP | 多表关联;前端表格布局 | ⭐⭐ | P2 | 4 h | --- ### 模块 D:考勤与请假 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | D-01 | 考勤记录 | 教师记录学生出勤(出勤/迟到/缺勤) | `attendance` 表、考勤 Servlet | 按日期+课程+学生唯一;批量提交 | ⭐⭐⭐ | P2 | 6 h | | D-02 | 请假申请 | 学生提交请假,填写起止时间与原因 | `leave_request` 表、申请 JSP/Servlet | 表单校验;状态:待审/通过/驳回 | ⭐⭐⭐ | P2 | 6 h | | D-03 | 请假审批 | 教师/管理员审批请假申请 | 审批 Servlet、待办列表 JSP | 工作流状态机;审批意见字段 | ⭐⭐⭐ | P2 | 5 h | | D-04 | 考勤统计 | 按学生/班级统计出勤率 | 统计 DAO、图表 JSP | 聚合查询;可选 ECharts 展示 | ⭐⭐⭐ | P3 | 6 h | --- ### 模块 E:通知与日志 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | E-01 | 系统公告 | 管理员发布公告,登录后所有用户可见 | `announcement` 表、公告 CRUD | 置顶、有效期;首页滚动展示 | ⭐⭐ | P1 | 4 h | | E-02 | 站内消息 | 管理员向指定用户/send 全体发消息 | `message` 表、收件箱/发件箱 JSP | 已读/未读;Ajax 未读数角标 | ⭐⭐⭐ | P2 | 6 h | | E-03 | 操作日志 | 记录增删改等关键操作(谁、何时、做了什么) | `operation_log` 表、日志 Filter/AOP 式拦截 | Filter 或 Servlet 基类;日志分页查询 | ⭐⭐⭐ | P1 | 6 h | | E-04 | 登录日志 | 记录每次登录 IP、时间、结果 | `login_log` 表、LoginServlet 埋点 | 获取客户端 IP;失败/成功分类 | ⭐⭐ | P1 | 3 h | --- ### 模块 F:数据统计与可视化 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | F-01 | 管理员 Dashboard | 首页展示用户数、今日注册、班级分布等 | 仪表盘 JSP、统计 Servlet | 多指标卡片;SQL 聚合 | ⭐⭐ | P1 | 5 h | | F-02 | 图表可视化 | 性别比例、年龄分布、院系人数饼图/柱状图 | 引入 ECharts、统计 API Servlet | Servlet 返回 JSON;Ajax 渲染图表 | ⭐⭐⭐ | P2 | 6 h | | F-03 | 数据大屏(选做) | 全屏展示核心指标,适合答辩演示 | 单独大屏 JSP + ECharts | CSS 全屏布局;定时 Ajax 刷新 | ⭐⭐⭐ | P3 | 8 h | --- ### 模块 G:流程与审批 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | G-01 | 信息变更审批 | 学生修改关键信息(姓名、学号)需管理员审核 | `change_request` 表、审批 Servlet | 暂存待审;通过后更新主表 | ⭐⭐⭐⭐ | P2 | 8 h | | G-02 | 新生注册审核 | 注册后状态为「待审核」,管理员通过后激活 | 注册流程改造、审核列表 | 状态字段;邮件/站内信通知 | ⭐⭐⭐ | P2 | 5 h | | G-03 | 批量导入审核 | CSV 导入先进临时表,确认后再写入正式表 | 临时表 + 确认 Servlet | 两阶段导入;预览与回滚 | ⭐⭐⭐⭐ | P3 | 8 h | --- ### 模块 H:工程化与架构升级 | 编号 | 功能任务 | 业务说明 | 主要改动 | 技术要点 | 难度 | 优先级 | 工时 | |------|----------|----------|----------|----------|------|--------|------| | H-01 | 引入 Service 层 | DAO 之上增加业务层,Servlet 只调 Service | 新增 `service` 包、重构 Servlet | 分层解耦;事务放 Service | ⭐⭐⭐ | P1 | 8 h | | H-02 | DBUtils / Druid 连接池 | 替换原生 JDBC 连接管理 | 引入依赖、改造 `DBUtil` | 连接池配置;SQL 性能提升 | ⭐⭐⭐ | P1 | 4 h | | H-03 | 统一 JSON 接口 | 列表/删除等改为 REST 风格 Ajax API | 统一响应 JavaBean、JsonServlet 基类 | ` Gson/Jackson`;前后端分离雏形 | ⭐⭐⭐ | P2 | 6 h | | H-04 | JSP 标签 / 公共片段 | 抽取 header、sidebar、分页为 `jsp:include` | `WEB-INF/jspf/` 公共片段 | 减少重复代码;统一布局 | ⭐⭐ | P0 | 4 h | --- ## 三、推荐实施路线 ### 路线 1:课程设计 / 作业答辩(约 2~3 周) | 顺序 | 任务编号 | 理由 | |------|----------|------| | 1 | A-01 密码加密 | 必讲安全,改动小见效快 | | 2 | H-04 公共 JSP 片段 | 为后续页面扩展打基础 | | 3 | B-01 院系班级 | 业务实体明显变复杂 | | 4 | E-03 操作日志 | 体现系统完整性 | | 5 | F-01 Dashboard | 答辩展示效果好 | | 6 | C-01 + C-04 课程与成绩 | 核心业务闭环 | ### 路线 2:功能丰富型(约 4~6 周) 在路线 1 基础上增加: | 顺序 | 任务编号 | |------|----------| | 7 | A-06 三级角色 | | 8 | C-02 学生选课 | | 9 | D-02 + D-03 请假与审批 | | 10 | E-01 系统公告 | | 11 | F-02 图表可视化 | | 12 | B-06 Excel 导出 | ### 路线 3:架构进阶型(约 6~8 周) 在路线 2 基础上增加: | 顺序 | 任务编号 | |------|----------| | 13 | H-01 Service 层 | | 14 | H-02 连接池 | | 15 | G-01 信息变更审批 | | 16 | H-03 统一 JSON 接口 | --- ## 四、任务依赖关系 ``` A-01 密码加密 └── A-02 登录锁定 └── A-03 找回密码 B-01 院系/班级 └── B-02 学号生成 └── B-07 高级搜索 └── C-02 学生选课 C-01 课程管理 └── C-02 选课 └── C-03 成绩录入 └── C-04 成绩查询 └── D-01 考勤记录 E-04 登录日志 └── A-02 登录锁定 H-04 JSP 公共片段 └── F-01 Dashboard └── 所有新增 JSP 页面 H-01 Service 层 └── H-03 JSON 接口 └── G-01 审批流程 ``` --- ## 五、答辩可强调的「业务复杂度」亮点 | 亮点 | 对应任务 | 答辩话术要点 | |------|----------|-------------| | 安全体系 | A-01、A-02、E-04 | 密码加密、防暴力破解、审计追踪 | | 组织模型 | B-01、B-03 | 院系-专业-班级三级结构,状态流转 | | 教学业务 | C-01~C-05 | 选课-成绩完整链路,含统计报表 | | 流程控制 | D-02、G-01、G-02 | 请假/变更/注册多级审批 | | 数据可视化 | F-01、F-02 | Dashboard + ECharts 图表 | | 架构演进 | H-01、H-02 | 三层架构 + 连接池,体现工程能力 | --- ## 六、数据库扩展预览(核心新增表) | 表名 | 说明 | 关联任务 | |------|------|----------| | `department` | 院系 | B-01 | | `major` | 专业 | B-01 | | `clazz` | 班级 | B-01 | | `course` | 课程 | C-01 | | `enrollment` | 选课记录 | C-02 | | `score` | 成绩 | C-03 | | `attendance` | 考勤 | D-01 | | `leave_request` | 请假 | D-02 | | `announcement` | 公告 | E-01 | | `message` | 站内消息 | E-02 | | `operation_log` | 操作日志 | E-03 | | `login_log` | 登录日志 | E-04 | | `change_request` | 变更审批 | G-01 | --- ## 七、选型建议 | 如果目标是… | 优先选这些任务 | |------------|---------------| | 快速加分 | A-01、F-01、E-01、B-04 | | 业务深度 | B-01、C-01~C-04、D-02~D-03 | | 技术深度 | H-01、H-02、H-03、A-06 | | 演示效果好 | F-01、F-02、C-06、E-01 | | 工作量可控 | 选 **路线 1** 的 6 项即可 | --- *可根据课程要求和时间,从表中勾选 5~10 项组成你的扩展计划。*