SSM项目 | 教务管理系统
SSM项目 | 教务管理系统
简介
使用技术:
IOC容器:Spring
Web框架:SpringMVC
ORM框架:Mybatis
安全框架:Shiro
日志:log4j
前端框架:Bootstrap+LayUI
开发工具:idea
数据库:MySQL 5.0
系统功能
系统角色
系统包含三个角色,教师、学生、管理员
运行流程图
用户登录界面
登录成功后弹窗提示
管理员功能
管理员主页面
课程管理页面
可以在该页面查询课程
修改课程信息
添加课程信息
添加成功后会在课程管理页面显示,对应课程的授课教师也能看到自己的该授课列表,学生可以在系统中看到新增的课程,并且可以选择该课程进行学习。
学生管理页面
管理员能够对学生用户进行CRUD,实现学生用户的管理。
教师管理
管理员能够实现教师用户的CRUD,实现教师用户的管理。
修改密码页面
教师页面
查看所授课程列表
给对应课程的学生进行打分
学生页面
查看教学的所有课程,可以进行选课
查看已修、未修课程
部分源码:
登录认证和授权:
public class MyShiroRealm extends AuthorizingRealm {
@Autowired
private UserLoginMapper userLoginMapper;
//获取授权信息,由开发者提供shiro框架已认证过用户的权限信息
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
//获取当前已认证(待授权用户)的用户的账号
String username = (String)principalCollection.getPrimaryPrincipal();
System.out.println(username+"授权成功");
// 查询该用户的角色或权限
UserLogin login = userLoginMapper.selectByUserName(username);
Set<String> roles = new HashSet<>();
if (login.getRoles()!=null){
//遍历用户的角色信息
for (Role one : login.getRoles()) {
//角色名添加到role集合中
roles.add(one.getRoleName());
}
}
//查询用户的权限信息
Set<String> perms = new HashSet<>();
//创建授权信息对象
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
//设置角色信息
info.setRoles(roles);
//设置权限信息
info.setStringPermissions(perms);
//返回授权信息对象
return info;
}
//获取认证信息
//由开发者来编写,实现从数据库中查询待认证的用户的用户信息。以提供給shiro框架进行密码匹配工作
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
//使用token对象获取待登录用户的用户名
String username = (String)token.getPrincipal();
//从数据库中查询该username的用户的信息
UserLogin login = userLoginMapper.selectByUserName(username);
System.out.println(login);
//判断待登录用户是否存在
if (login==null){
throw new UnknownAccountException(username + "不存在");
}
Session session = SecurityUtils.getSubject().getSession();
session.setAttribute("login", login);
ByteSource salt = ByteSource.Util.bytes(login.getUsername());
return new SimpleAuthenticationInfo(login.getUsername(),login.getPassword(),salt,getName());
}
}