项目概览
这次运行的是 jitwxs/Online_Study_System,项目名为“在线课程学习系统”。它是一个比较典型的传统 JavaWeb 项目,使用 SSM、JSP、Bootstrap、Shiro、MySQL 等技术实现三类角色的课程管理流程。
仓库地址:
https://github.com/jitwxs/Online_Study_System
项目角色分为管理员、学生、教师:
- 管理员:课程管理、学生管理、教师管理、重置用户密码、修改密码。
- 学生:查看课程、选课、查看已选/已修课程、学习课程、充值、修改密码。
- 教师:查看教授课程、查看成绩、个人中心、修改密码。
本地环境
我本地运行环境:
- macOS
- Java 17
- Maven 3.9
- MySQL 9.x
- Tomcat Maven Plugin 临时运行在
8081
原项目 README 写的是 JDK 1.8、Tomcat 8、MySQL。由于本地环境比较新,运行时做了几个兼容修复。
拉取与导入
git clone https://github.com/jitwxs/Online_Study_System.git
cd Online_Study_System
导入数据库:
mysql -uroot -p -e "CREATE DATABASE online_study_system DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -uroot -p online_study_system < sql/online_study_system.sql
默认账号来自 README 和 SQL:
管理员:admin / 123
教师:李老师 / 123
学生:小红 / 123
运行修复
这个项目比较老,直接在 Java 17 + MySQL 9 上运行会遇到几个问题。
第一,javax.annotation.Resource 在新 JDK 中不再内置,需要补依赖:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
第二,旧版 MySQL Connector/J 5.1 不支持 MySQL 8/9 默认的 caching_sha2_password,所以升级到 8.x:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
对应配置改为:
jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/online_study_system?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
第三,为了命令行直接运行,我临时加了 tomcat7-maven-plugin,端口设为 8081:
mvn tomcat7:run
访问:
http://localhost:8081/login.jsp
登录页

管理员端截图
管理员课程管理:

学生管理:

教师管理:

重置用户密码:

修改管理员密码:

退出系统后回到登录页:

学生端截图
课程列表:

已选课程:

已修课程:

个人中心:

充值中心:

修改密码:

课程学习:

课程考试页面在当前演示数据下返回错误页,这里也保留截图,方便判断业务状态限制:

教师端截图
教授课程:

个人中心:

修改密码:

查看成绩:

评分页在当前访问参数下返回错误页,也保留作为运行记录:

源码下载
源码包已整理为 ZIP,排除了 .git、target、运行截图等临时文件,并把数据库密码恢复为示例值。
总结
这个项目是一个完整的传统 SSM + JSP 教学项目,业务角色比单纯 CRUD 示例更完整,适合学习 Shiro 登录鉴权、SSM 分层、JSP 后台页面和 MyBatis XML 的组合方式。
需要注意的是,它的技术栈已经比较老。如果用在新环境里,建议至少升级数据库驱动、补齐 Java 9+ 缺失依赖,并把密码存储、异常处理和前端交互继续完善。










暂无评论内容