基于javaweb的学生信息管理系统(java+ssm+jsp+layui+mysql)

基于javaweb的学生信息管理系统(java+ssm+jsp+layui+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220519001651

20220519001652

20220519001654

20220519001655

20220519001656

20220519001657

基于javaweb+jsp的学生信息管理系统(java+SSM+JSP+layui+maven+mysql)

一、项目简述

功能包括: 三角色管理: 学生,教师,管理员,在线选课,成绩录入,学生管理,选课管理,教室管理等等。学生管理可以查看所有学生并操作、添加学生;查看学生选报课程详情等等。教师管理可以查看所有教师并操作、添加教师等等。班级管理可以查看所有班级信息并操作、添加班级等等。

二、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等;

用户管理控制器:

/**

  • 用户管理控制器

*/

@RequestMapping(“/user/”)

@Controller

public 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<String,Object> addUser(User user){

Map<String, Object> 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<idsArr.length;i++){

list.add(idsArr[i]);

try{

userService.batchRemove(list);

return new AjaxResult();

}catch(Exception e){

return new AjaxResult(“批量删除失败”);

//查询所有角色

public List 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();

角色管理控制层:

@Controller

public 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(“修改失败”);


网选课系统是一个非常实用的系统,可以方便学生进行选课操作,也可以方便教师进行课程管理。下面是一个基于JavaWeb的网上选课系统的设计思路: 1. 系统架构 该系统采用 B/S 架构,即浏览器/服务器架构。前端使用 HTML、CSS、JavaScript 和 JQuery,后端使用 Java+SSM 框架和 MySQL 数据库。 2. 系统功能 (1)学生模块:学生可以登录系统后进行选课操作,查看已选课程,并对已选课程进行退选操作。 (2)教师模块:教师可以登录系统后进行课程管理操作,包括添加课程、修改课程、删除课程等操作。 (3)管理员模块:管理员可以登录系统后对学生和教师进行管理,包括添加学生、添加教师、修改学生信息、修改教师信息等操作。 (4)公告管理:管理员可以发布公告,学生和教师可以浏览公告。 (5)选课规则管理:管理员可以设置选课规则,例如每个学生最多选择多少门课程,每门课程最多选多少人等。 3. 数据库设计 该系统需要设计以下数据库表: (1)学生表:包括学生编号、学生姓名、学生性别、学生年龄、所在班级等字段。 (2)教师表:包括教师编号、教师姓名、教师性别、所教课程、教龄等字段。 (3)课程表:包括课程编号、课程名称、授课教师、上课时间、选课人数等字段。 (4)选课记录表:包括学生编号、课程编号等字段。 (5)公告表:包括公告编号、公告内容、发布时间等字段。 4. 技术实现 该系统采用 Java+SSM 框架进行实现,其中: (1)后端技术:采用 SpringMVC 框架进行控制器的开发,采用 MyBatis 框架进行数据库操作。 (2)前端技术:采用 HTML、CSS、JavaScript 和 JQuery 进行页面布局和交互效果的实现。 (3)数据库技术:采用 MySQL 数据库进行数据存储和管理。 5. 总结 网上选课系统是一个非常实用的系统,它可以方便学生进行选课操作,也可以方便教师进行课程管理。该系统采用 B/S 架构,采用 Java+SSM 框架进行开发,实现了学生模块、教师模块、管理员模块、公告管理和选课规则管理等功能。在实现时需要注意数据库表的设计和技术实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值