课程后台管理系统
基于 JSP+Servlet+JavaBean 的 MVC 模型开发的课程后台管理系统。
项目简介
本系统是一个完整的课程后台管理系统,实现了用户管理、课程管理、Excel导入导出等功能。系统采用经典的 MVC 架构,使用 JSP+Servlet+JavaBean 技术栈开发。
技术栈
- 前端: JSP、HTML、CSS、JavaScript
- 后端: Servlet、JavaBean、JDBC
- 数据库: MySQL 8.0(支持数据持久化)
- 服务器: Tomcat 8.0+
- 开发工具: Eclipse / IntelliJ IDEA
- JDK版本: JDK 1.7+
- Excel处理: Apache POI 5.2.3
- 日志框架: Apache Log4j 2
功能特性
1. 登录功能
- 支持超级管理员和普通管理员两种角色
- 超级管理员账号:
imooc,密码:imooc - 验证码验证,防止恶意登录
- 普通管理员由超级管理员添加
2. 用户管理
- 仅超级管理员可操作
- 添加普通管理员
- 删除普通管理员
- 查看所有管理员列表
- 权限过滤器阻止普通管理员访问
3. 课程管理
-
表单添加课程:手动录入课程信息
- 课程ID
- 课程名称
- 课程方向
- 课程描述
- 课程时长
- 自动记录操作人
-
Excel导入课程:批量导入课程数据
- 支持 .xls 和 .xlsx 格式
- 自动解析Excel文件
-
Excel导出课程:导出所有课程数据
- 自动生成 Excel 文件
- 包含完整课程信息
-
课程查询:分页显示课程列表
- 每页显示10条记录
- 支持翻页功能
项目结构
csharp
kechenghoutai/
├── src/
│ └── com/
│ └── imooc/
│ ├── entity/ # 实体类
│ │ ├── Course.java # 课程实体
│ │ └── User.java # 用户实体
│ ├── dao/ # 数据访问层
│ │ ├── CourseDao.java
│ │ └── impl/
│ │ └── CourseDaoImpl.java
│ ├── service/ # 业务逻辑层
│ │ ├── CourseService.java
│ │ └── impl/
│ │ └── CourseServiceImpl.java
│ ├── servlet/ # Servlet控制器
│ │ ├── LoginServlet.java
│ │ ├── LogoutServlet.java
│ │ ├── CaptchaServlet.java
│ │ ├── UserServlet.java
│ │ └── CourseServlet.java
│ ├── filter/ # 过滤器
│ │ ├── EncodeFilter.java # 编码过滤器
│ │ ├── PermissionFilter.java # 权限过滤器
│ │ └── LoginFilter.java # 登录过滤器
│ └── util/ # 工具类
│ ├── DBUtil.java # 数据库连接工具
│ ├── ExcelHelper.java # Excel工具类
│ ├── ValidateUtil.java # 验证工具类
│ └── FileUtil.java # 文件工具类
├── WebContent/
│ ├── WEB-INF/
│ │ └── web.xml # Web配置文件
│ ├── login.jsp # 登录页面
│ ├── course-list.jsp # 课程列表页
│ ├── course-add.jsp # 课程添加页
│ └── user-list.jsp # 用户管理页
└── README.md
快速开始
🚀 5分钟快速启动
方式一:使用内存存储(演示用)
- 下载 JAR 包 :双击运行
download-jars.bat - 导入项目:在 Eclipse 中导入项目
- 配置 Tomcat:添加 Tomcat 服务器
- 启动访问 :http://localhost:8080/kechenghoutai/
- 登录系统 :用户名
imooc,密码imooc
方式二:使用 MySQL 数据库(生产用)⭐
- 下载依赖 :运行
download-jars.bat和download-mysql-driver.bat - 创建数据库 :执行
database.sql脚本 - 配置密码 :修改
DBUtil.java中的数据库密码 - 启动测试 :运行
DBUtil.main()测试连接 - 访问系统:数据将永久保存到 MySQL
📖 详细步骤请查看:
- 快速入门:
快速开始指南.md - MySQL配置:
MySQL配置说明.txt - 启动说明:
如何启动项目.txt
安装部署
1. 环境要求
- JDK: 1.7 或以上版本
- Tomcat: 8.0 或以上版本
- IDE: Eclipse 或 IntelliJ IDEA
- MySQL: 8.0(可选,用于数据持久化)
2. 导入项目
- 下载项目源码
- 在 Eclipse 中选择
File->Import->Existing Projects into Workspace - 选择项目目录,点击
Finish
3. 配置依赖
3.1 Apache POI 依赖(Excel 功能)
方式一:自动下载(推荐)
双击运行:download-jars.bat
方式二:手动下载
将以下 11 个 JAR 包放入 WebContent/WEB-INF/lib/ 目录:
核心 POI 库(3个):
poi-5.2.3.jarpoi-ooxml-5.2.3.jarpoi-ooxml-lite-5.2.3.jar⚠️ 必需
依赖库(6个):
xmlbeans-5.1.1.jarcommons-collections4-4.4.jarcommons-compress-1.21.jarcommons-io-2.11.0.jarcurvesapi-1.07.jarcommons-codec-1.15.jar
日志库(2个):
log4j-api-2.20.0.jarlog4j-core-2.20.0.jar
📥 下载地址见: WebContent/WEB-INF/lib/README.txt
3.2 MySQL 驱动(如使用数据库)
自动下载:
双击运行:download-mysql-driver.bat
手动下载:
mysql-connector-java-8.0.30.jar
下载地址:
ruby
https://maven.aliyun.com/repository/central/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar
4. 配置 MySQL 数据库(可选)
4.1 创建数据库
bash
mysql -u root -p
source database.sql
4.2 修改数据库配置
编辑 src/com/imooc/util/DBUtil.java 第 16 行:
arduino
private static final String PASSWORD = "你的MySQL密码";
4.3 测试连接
在 Eclipse 中运行 DBUtil.java 的 main 方法,查看连接是否成功。
📖 详细配置请查看: MySQL配置说明.txt
5. 配置 Tomcat
- 在 Eclipse 中配置 Tomcat 服务器
- 将项目添加到 Tomcat
- 启动 Tomcat 服务器
6. 访问系统
在浏览器中访问:http://localhost:8080/kechenghoutai/
使用说明
登录系统
-
打开登录页面
-
输入用户名和密码
- 超级管理员:用户名
imooc,密码imooc
- 超级管理员:用户名
-
输入验证码(点击图片可刷新)
-
点击登录按钮
管理课程
-
登录后自动进入课程管理页面
-
添加课程:点击"添加课程"按钮,填写表单
-
导入课程:
- 点击"导入课程"按钮
- 选择 Excel 文件(.xls 或 .xlsx 格式)
- 点击上传
-
导出课程:点击"导出课程"按钮,自动下载 Excel 文件
-
查看课程:在列表中查看所有课程,支持分页
管理用户(仅超级管理员)
-
点击导航栏的"用户管理"
-
添加管理员:
- 点击"添加管理员"按钮
- 输入用户名(4-20位字母、数字、下划线)
- 输入密码(6-20位字符)
- 点击添加
-
删除管理员:点击用户列表中的"删除"按钮
Excel 导入格式
导入的 Excel 文件应包含以下列(第一行为标题行):
| 课程ID | 课程名 | 课程方向 | 课程描述 | 时长 | 操作人 |
|---|---|---|---|---|---|
| C004 | Python基础 | 后端开发 | Python编程入门 | 30小时 | admin |
| C005 | MySQL高级 | 数据库 | MySQL数据库进阶 | 25小时 | admin |
系统架构
MVC 模式
-
Model(模型层) :
- Entity:Course、User 实体类
- DAO:数据访问接口和实现
- Service:业务逻辑接口和实现
-
View(视图层) :
- JSP 页面:login.jsp、course-list.jsp、course-add.jsp、user-list.jsp
-
Controller(控制器) :
- Servlet:LoginServlet、UserServlet、CourseServlet 等
过滤器
- EncodeFilter:处理请求和响应的编码,解决中文乱码问题
- PermissionFilter:权限验证,确保只有超级管理员能访问用户管理功能
- LoginFilter:登录验证(可选配置)
注意事项
-
数据存储:
- 当前版本:已配置为 MySQL 8 数据库存储,数据永久保存 ✅
- 内存版本:如需切换回内存存储(演示用),参考《MySQL配置说明.txt》
-
文件上传:导入功能需要上传 Excel 文件,确保服务器有足够的磁盘空间。
-
浏览器兼容性:推荐使用现代浏览器(Chrome、Firefox、Edge)访问系统。
-
安全性:
- 密码建议使用加密存储(当前为明文存储)
- 生产环境建议添加更多安全验证
常见问题
1. 中文乱码问题
现象 :页面显示乱码 解决 :确保 EncodeFilter 已在 web.xml 中正确配置
2. Excel 导出报错:ClassNotFoundException
错误 1:LogManager 找不到
makefile
ClassNotFoundException: org.apache.logging.log4j.LogManager
原因 :缺少 Log4j 日志库 解决 :运行 download-log4j.bat 或手动下载:
log4j-api-2.20.0.jarlog4j-core-2.20.0.jar
错误 2:CTWorkbook 找不到
makefile
ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook
原因 :缺少 OOXML Schemas 库 解决 :运行 download-poi-schemas.bat 或手动下载:
poi-ooxml-lite-5.2.3.jar
错误 3:其他 JAR 包缺失
解决 :运行 download-jars.bat 一次性下载所有依赖
3. MySQL 连接失败
错误 :Communications link failure 检查:
- MySQL 服务是否启动
- 数据库密码是否正确(
DBUtil.java第 16 行) - 数据库是否已创建(执行
database.sql) - MySQL 驱动 JAR 包是否已添加
测试连接 :运行 DBUtil.main() 方法
4. 权限验证不生效
确保 PermissionFilter 已在 web.xml 中正确配置,并且 URL 映射正确。
5. JVM 参数错误
错误 :Unrecognized option: --add-opens 原因 :JDK 8 不支持此参数 解决 :在 Eclipse Tomcat 配置中删除 --add-opens 参数
6. Tomcat 启动失败
解决步骤:
- 清理项目:
Project→Clean - 清理 Tomcat:右键 Tomcat →
Clean... - 刷新项目:右键项目 →
Refresh(F5) - 重启 Tomcat
📖 更多问题请查看: Excel导出所需JAR包.txt
扩展功能建议
已实现功能 ✅
- ✅ 集成 MySQL 8 数据库持久化存储
- ✅ Excel 批量导入导出功能
- ✅ 完善的权限控制系统
- ✅ 验证码防暴力破解
- ✅ 数据分页显示
可扩展功能
- 添加课程编辑和删除功能
- 实现高级搜索和筛选
- 添加用户权限细化管理
- 实现操作日志记录
- 添加数据统计和报表
- 实现密码加密存储(MD5/BCrypt)
- 添加邮件通知功能
- 前后端分离(Vue.js + RESTful API)




