Java怎样实现在线选课系统
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Java怎样实现在线选课系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、项目简述功能: 系统分为三个角色。最高权限管理员,学生,教
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
广东猪兼强互联网科技有限公司
互联网科技活动banner
疫情对互联网科技公司影响
互联网品科技
互联网科技战争
奇酷互联网络科技
奔汉互联网科技
菲比寻常互联网科技
广西互联网科技公司
长亮科技 互联网金融
互联网科技汛
港股科技和互联网
宜昌元轩互联网科技有限公司
互联网科技与大数据专业
互联网公司黑科技创始人
众安科技工业互联网合作
梅州GM互联网络科技有限公司
下一代互联网重大应用科技园
保山互联网科技靠谱吗
互联网的黑科技实验室
广东猪兼强互联网科技有限公司
互联网科技工作委员会副主任毛军
互联网科技工作委员会毛军
上海挚品互联网科技
嘟嘟瓜互联网科技
互联网前沿科技
盛创互联网科技有限公司
科技与互联网的利与弊
广州新华互联网科技学校电竞方面
互联网行业科技股