Java怎样实现在线选课系统
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,Java怎样实现在线选课系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、项目简述功能: 系统分为三个角色。最高权限管理员,学生,教
千家信息网最后更新 2025年11月12日Java怎样实现在线选课系统
Java怎样实现在线选课系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、项目简述
功能: 系统分为三个角色。最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询。,教学课程,查看选课名单等等功能完全齐备。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + Mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +Spring + SpringMVC + MyBatis + Bootstrap4+ css + JavaScript + JQuery + Ajax + particles.js+ maven等等。


用户管理控制器:
/** * 用户管理控制器 */@RequestMapping("/user/")@Controllerpublic class UserController { @Autowired private IUserService userService; @Autowired private IRoleService roleService; @Resource private ProcessEngineConfiguration configuration; @Resource private ProcessEngine engine; @GetMapping("/index") @ApiOperation("跳转用户页接口") @PreAuthorize("hasRole('管理员')") public String index(String menuid,Model model){ List roles = queryAllRole(); model.addAttribute("roles",roles); model.addAttribute("menuid",menuid); //用户首页 return "views/user/user_list"; } @GetMapping("/listpage") @ApiOperation("查询用户分页数据接口") @ApiImplicitParams({ @ApiImplicitParam(name = "UserQuery", value = "用户查询对象", defaultValue = "userQuery对象") }) @ResponseBody @PreAuthorize("hasRole('管理员')") public PageList listpage(UserQuery userQuery){ return userService.listpage(userQuery); } //添加用户 @PostMapping("/addUser") @ApiOperation("添加用户接口") @ResponseBody public Map addUser(User user){ Map ret = new HashMap<>(); ret.put("code",-1); if(StringUtils.isEmpty(user.getUsername())){ ret.put("msg","请填写用户名"); return ret; } if(StringUtils.isEmpty(user.getPassword())){ ret.put("msg","请填写密码"); return ret; } if(StringUtils.isEmpty(user.getEmail())){ ret.put("msg","请填写邮箱"); return ret; } if(StringUtils.isEmpty(user.getTel())){ ret.put("msg","请填写手机号"); return ret; } if(StringUtils.isEmpty(user.getHeadImg())){ ret.put("msg","请上传头像"); return ret; } if(userService.addUser(user)<=0) { ret.put("msg", "添加用户失败"); return ret; } ret.put("code",0); ret.put("msg","添加用户成功"); return ret; } /** * 修改用户信息操作 * @param user * @return */ @PostMapping("/editSaveUser") @ApiOperation("修改用户接口") @PreAuthorize("hasRole('管理员')") @ResponseBody public Message editSaveUser(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("请填写用户名"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("请填写邮箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("请填写手机号"); } try { userService.editSaveUser(user); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("修改用户信息失败"); } } //添加用户 @GetMapping("/deleteUser") @ApiOperation("删除用户接口") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "如:88",required = true) }) @PreAuthorize("hasRole('管理员')") @ResponseBody public AjaxResult deleteUser(@RequestParam(required = true) Long id){ AjaxResult ajaxResult = new AjaxResult(); try { userService.deleteUser(id); } catch (Exception e) { e.printStackTrace(); return new AjaxResult("删除失败"); } return ajaxResult; } @PostMapping(value="/deleteBatchUser") @ApiOperation("批量删除用户接口") @PreAuthorize("hasRole('管理员')") @ResponseBody public AjaxResult deleteBatchUser(String ids){ String[] idsArr = ids.split(","); List list = new ArrayList(); for(int i=0;i queryAllRole(){ return roleService.queryAll(); } //添加用户的角色 @PostMapping("/addUserRole") @ApiOperation("添加用户角色接口") @ApiImplicitParams({ @ApiImplicitParam(name = "paramMap", value = "如:{userId:1,[1,2,3,4]]}") }) @ResponseBody public AjaxResult addUserRole(@RequestBody Map paramMap){ AjaxResult ajaxResult = new AjaxResult(); String userId = (String)paramMap.get("userId"); List roleIds = (List) paramMap.get("roleIds"); try { //添加用户对应的角色 roleService.addUserRole(userId,roleIds); return ajaxResult; }catch (Exception e){ e.printStackTrace(); return new AjaxResult("保存角色失败"); } } //添加用户 @RequestMapping("/regSaveUser") @ResponseBody public Long addTeacher(User user){ System.out.println("保存用户...."+user); userService.addUser(user); //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用户组 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); // 添加用户对应的组关系 Group stuGroup = new GroupEntityImpl(); stuGroup.setId("stuGroup"); Group tGroup = new GroupEntityImpl(); tGroup.setId("tGroup"); if(user.getType() == 2) { //保存老师组 userService.saveRel(is, userInfo, tGroup); } if(user.getType() == 3) { //保存学生组 userService.saveRel(is, userInfo, stuGroup); } Long userId = user.getId(); return userId; } /** * 修改密码页面 * @return */ @RequestMapping(value="/update_pwd",method=RequestMethod.GET) public String updatePwd(){ return "views/user/update_pwd"; } /** * 修改密码操作 * @param oldPwd * @param newPwd * @return */ @ResponseBody @PostMapping("/update_pwd") public Message updatePassword(@RequestParam(name="oldPwd",required=true)String oldPwd, @RequestParam(name="newPwd",required=true)String newPwd){ String username = CommonUtils.getLoginUser().getUsername(); User userByUserName = userService.findUserByUserName(username); if(userByUserName!=null){ String password = userByUserName.getPassword(); BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(); boolean matches = bCryptPasswordEncoder.matches(oldPwd, password); if(!matches){ return Message.error("旧密码不正确");//true } userByUserName.setPassword(bCryptPasswordEncoder.encode(newPwd)); if(userService.editUserPassword(userByUserName)<=0){ return Message.error("密码修改失败"); } } return Message.success(); } /** * 清除缓存 * @param request * @param response * @return */ @ResponseBody @PostMapping("/clear_cache") public Message clearCache(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Cache-Control","no-store"); response.setHeader("Pragrma","no-cache"); response.setDateHeader("Expires",0); return Message.success(); }} 角色控制器:
@Controllerpublic class RoleController { @Autowired private IRoleService roleService; @Autowired private IPermissionService permissionService; @PreAuthorize("hasRole('管理员')") @ResponseBody @RequestMapping("/role/doAdd") public String doAdd(Role role){ //角色添加 return "ok"; } //添加角色 @RequestMapping("/role/addRole") @PreAuthorize("hasRole('管理员')") @ResponseBody public AjaxResult addRole(Role role){ System.out.println("保存角色...."+role); try { roleService.saveRole(role); return new AjaxResult(); } catch (Exception e) { e.printStackTrace(); return new AjaxResult("操作失败"); } } @PreAuthorize("hasRole('管理员')") @RequestMapping("/role/index") public String index(Model model){ List permisisons = permissionService.findAllPermisisons(); model.addAttribute("permissions",permisisons); //返回角色 return "views/role/role_list"; } @RequestMapping("/role/listpage") @ResponseBody public PageList listpage(RoleQuery roleQuery){ System.out.println("传递参数:"+roleQuery); return roleService.listpage(roleQuery); } //修改用户editSaveUser @RequestMapping("/role/editSaveRole") @ResponseBody public AjaxResult editSaveRole(Role role){ System.out.println("修改角色...."+role); try { roleService.editSaveRole(role); return new AjaxResult(); } catch (Exception e) { e.printStackTrace(); } return new AjaxResult("修改失败"); } //添加角色 @RequestMapping("/role/deleteRole") @ResponseBody public AjaxResult deleteRole(Long id){ System.out.println("删除角色...."+id); AjaxResult ajaxResult = new AjaxResult(); try { roleService.deleteRole(id); } catch (Exception e) { e.printStackTrace(); return new AjaxResult("删除失败"); } return ajaxResult; } //添加角色权限 addRolePermission @RequestMapping("/role/addRolePermission") @ResponseBody public AjaxResult addRolePermission(@RequestBody Map paramMap){ AjaxResult ajaxResult = new AjaxResult(); String roleId = (String)paramMap.get("roleId"); List permissionIds = (List) paramMap.get("permissionIds"); try { //添加角色对应的权限 roleService.addRolePermission(roleId,permissionIds); return ajaxResult; }catch (Exception e){ e.printStackTrace(); return new AjaxResult("保存权限失败"); } } } 学生控制器:
@RequestMapping("/student")@Controller@Api(tags = "学生管理接口")public class StudentController { @Autowired private IUserService userService; @Autowired private ICourseService courseService; @Autowired private IClassesService classesService; @Resource private ProcessEngine engine; @Autowired private IOperaterLogService operaterLogService; //老师列表 //后台查询学生列表 @RequestMapping("/index") public String index(Model model){ //用户首页 model.addAttribute("courses",courseService.queryAll()); model.addAttribute("classes",classesService.queryAll()); return "views/student/student_list"; } @RequestMapping("/listpage") @ResponseBody public PageList listpage(UserQuery userQuery){ userQuery.setType(3L);//2表示老学生 return userService.listpage(userQuery); } /** * 添加学生操作 * @param user * @return */ @PostMapping("/addSaveStu") @ApiOperation("添加学生接口") @PreAuthorize("hasRole('管理员')") @ResponseBody public Message addSaveStudent(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("请填写用户名"); } if(StringUtils.isEmpty(user.getPassword())){ return Message.error("请填写密码"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("请填写邮箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("请填写手机号"); } if(StringUtils.isEmpty(user.getStunum())){ return Message.error("请填写学号"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ return Message.error("用户名已存在"); } if(userService.findByStuNum(user.getStunum())!=null){ return Message.error("该学号已存在"); } user.setType(3); if(userService.addUser(user)<=0){ return Message.error("学生添加失败"); } //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用户组 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); // 添加用户对应的组关系 Group stuGroup = new GroupEntityImpl(); stuGroup.setId("stuGroup"); userService.saveRel(is, userInfo, stuGroup); operaterLogService.add("添加学生成功,学生名称:"+user.getUsername()); return Message.success(); } //修改用户editSaveUser @PostMapping("/editSaveStu") @ApiOperation("修改学生接口") @PreAuthorize("hasRole('管理员')") @ResponseBody public Message editSaveStu(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("请填写用户名"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("请填写邮箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("请填写手机号"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ if(!userByUserName.getId().equals(user.getId())){ return Message.error("该用户名已存在"); } } try { userService.editSaveUser(user); operaterLogService.add("编辑学生成功,学生名称:"+user.getUsername()); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("学生编辑失败"); } } //editSaveStuXk @PostMapping("/editSaveStuXk") @ApiOperation("修改用户接口") @ApiImplicitParams({ @ApiImplicitParam(name = "User", value = "学生选课") }) @ResponseBody public AjaxResult editSaveStuXk(User user){ try { userService.editSaveXk(user); operaterLogService.add("修改学生选课成功,学生名称:"+user.getUsername()); return new AjaxResult(); } catch (Exception e) { e.printStackTrace(); } return new AjaxResult("修改失败"); } }教师管理控制器:
@RequestMapping("/teacher")@Controller@Api(tags = "教师管理接口")public class TeacherController { @Autowired private IUserService userService; @Autowired private IClassesService classesService; @Resource private ProcessEngine engine; @Autowired private IOperaterLogService operaterLogService; //老师列表 @RequestMapping("/index") public String index(Model model){ //用户首页 model.addAttribute("classes",classesService.queryAll()); return "views/teacher/teacher_list"; } @RequestMapping("/listpage") @ResponseBody public PageList listpage(UserQuery userQuery){ userQuery.setType(2L);//2表示老师 return userService.listpage(userQuery); } /** * 添加教师操作 * @param user * @return */ @PostMapping("/addTeacher") @ApiOperation("添加教师接口") @ResponseBody @PreAuthorize("hasRole('管理员')") public Message addTeacher(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("请填写用户名"); } if(StringUtils.isEmpty(user.getPassword())){ return Message.error("请填写密码"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("请填写邮箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("请填写手机号"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ return Message.error("用户名已存在"); } user.setType(2); if(userService.addUser(user)<=0){ return Message.error("教师添加失败"); } //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用户组 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); Group tGroup = new GroupEntityImpl(); tGroup.setId("tGroup"); userService.saveRel(is, userInfo, tGroup); operaterLogService.add("添加教师成功,教师名称:"+user.getUsername()); return Message.success(); } /** * 修改教师操作 * @param user * @return */ @PostMapping("/editSaveStu") @ApiOperation("修改教师接口") @PreAuthorize("hasRole('管理员')") @ResponseBody public Message editSaveStu(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("请填写用户名"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("请填写邮箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("请填写手机号"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ if(!userByUserName.getId().equals(user.getId())){ return Message.error("该用户名已存在"); } } try { userService.editSaveUser(user); operaterLogService.add("编辑教师成功,教师名称:"+user.getUsername()); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("教师信息编辑失败"); } } }看完上述内容,你们掌握Java怎样实现在线选课系统的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
用户
管理
学生
角色
接口
教师
管理员
用户名
密码
成功
手机
手机号
邮箱
名称
控制器
控制
权限
老师
查询
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
vcenter配置数据库
网络边缘的网络技术能力
无锡网络软件开发销售价格
常见的网络安全威胁来自哪些方面
天津大学数据库真题
数据库编程一
方舟找服务器网站
云数据库包括什么地方
qt软件开发招聘深圳
如何加强中职学生的网络安全
哈尔滨晟泽互联网科技有限公司
sql导入大数据库吗
局域网络技术的三要素是什么
数据库新技术的概念
电话录音文件怎么从服务器下载
网络安全违法现象
网络安全与执法跨专业考研
工业软件开发有哪些
服务器名称
geo 数据库 骨科
丹东专业微信小说软件开发制作
石化行业网络安全教育方案
宁夏软件开发哪家专业
德勤的网络安全容易入职吗
peps嵌入式软件开发流程
网络安全手抄报图片
网络安全与数据保护
中学智慧食堂解决方案软件开发
中国网络安全联盟
永宁县软件开发技术找哪家