SSM 实战项目运行记录:在线课程学习系统

原创记录

项目概览

这次运行的是 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,排除了 .gittarget、运行截图等临时文件,并把数据库密码恢复为示例值。

总结

这个项目是一个完整的传统 SSM + JSP 教学项目,业务角色比单纯 CRUD 示例更完整,适合学习 Shiro 登录鉴权、SSM 分层、JSP 后台页面和 MyBatis XML 的组合方式。

需要注意的是,它的技术栈已经比较老。如果用在新环境里,建议至少升级数据库驱动、补齐 Java 9+ 缺失依赖,并把密码存储、异常处理和前端交互继续完善。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容