基于javaweb和mysql的ssm+maven在线高中考试系统(java+ssm+jsp+mysql+maven)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb的SSM+Maven在线高中考试系统(java+ssm+jsp+mysql+maven)

项目分为前台和后台,前台主要为学生角色、后台主要为管理员角色。

管理员添加试题和发布试卷,学生负责在线考试、在线查看成绩和错题记录列表等。

管理员功能有:年级管理、课程管理、试题管理、试卷管理、学生管理等。

运行环境:jdk1.8、mysql5.x、eclipse、tomcat8.5\7.0、maven3.5\3.6。

 Id 用户账号,删除多个是,id用逗号分隔开

     * @return
     */
    @RequestMapping("/deleteUser.action")
    public String deleteUser(String userId, Model model) {
        if (userId != null) {
            String ids[] = userId.split(",");
            for (int i = 0; i < ids.length; i++) {
                userService.delete(ids[i]);
            }
        }
        return "redirect:/admin/getAllUser.action";
    }

    /**
     * 用户身份信息审核(通过)
     *

     * @return
     */
    @RequestMapping("/passinfo.action")
    public String passUserInfo(@RequestParam("ids") String ids) {
        User us = new User();
        String currentIds[] = ids.split(",");
        for (int i = 0; i < currentIds.length; i++) {
            us.setUserId(Integer.parseInt(currentIds[i]));
            us.setUserState(1);
            userService.update(us);
        }
        return "redirect:/admin/getFindPending.action";
    }

    /**
     * 用户身份信息审核(不通过)
     *

     * @return
     */
    @RequestMapping("/failinfo.action")
    public String failUserInfo(@RequestParam("ids") String ids) {
        User user = new User();
        String currentIds[] = ids.split(",");
        for (int i = 0; i < currentIds.length; i++) {
            user.setUserId(Integer.parseInt(currentIds[i]));
            user.setUserState(1);
            userService.update(user);
        }
        return "redirect:/admin/getFindPending.action";
		return "/admin/type/list";			
	}
	/**
	 * 题型类型分页数据
	 * @param page
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/typeListPage.action")
	@ResponseBody
	public List<Type> qryTypePage(@RequestParam(value="page", defaultValue="1") int page,
			Type type,Model model, HttpSession session){
		PageInfo<Type> pageInfo = typeService.findByPage(type, page, 5);
		List<Type> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}
	
	/**
	 * 删除题型信息
	 * @param typeId	题型编号,删除多个是,id用逗号分隔开
	 * @param model
	 * @return
	 */
	@RequestMapping("/deleteType.action")
	public String deleteType(String typeId, Model model){
		if(typeId != null){
			String ids[] = typeId.split(",");
			for(int i=0;i<ids.length;i++){
				typeService.delete(Integer.parseInt(ids[i]));
			}
		}
		return "redirect:/admin/type/toTypePage.action";
	} 
	/**
	 * 跳转到添加用户信息页面
	 * @param user
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddType.action")
	public String toAddType(Type type, Model model, HttpSession session){
		return "/admin/type/add";			
	}

/**
 * 试题类型管理
 *
 */
@RequestMapping("/admin/type")
@Controller
public class TypeController {
	
	@Autowired
	TypeService typeService;
	
	@RequestMapping("/toTypePage.action")
	public String toTypePage(@RequestParam(value="page", defaultValue="1") int page,
			Type type,Model model, HttpSession session){
		PageInfo<Type> pageInfo = typeService.findByPage(type, page, 5);
		List<Type> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return "/admin/type/list";			
	}
	/**
	 * 题型类型分页数据
	 * @param page
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/typeListPage.action")
	@ResponseBody
	public List<Type> qryTypePage(@RequestParam(value="page", defaultValue="1") int page,
			Type type,Model model, HttpSession session){
		PageInfo<Type> pageInfo = typeService.findByPage(type, page, 5);
		List<Type> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}
	
	/**
        model.addAttribute("grade", gradeService.find(new Grade()));
        model.addAttribute("user", userInfo);
        return "/admin/user/edit";
    }

    /**
     * 用户个人信息查询(信息审核)
     *

     * @param session
     * @return
     */
    @RequestMapping("/toUserDetail.action")
    public String toUserDetail(User user, Model model, HttpSession session) {
        int userId = user.getUserId();
        User userInfo = userService.get(userId);
        model.addAttribute("user", userInfo);
        model.addAttribute("grade", gradeService.find(new Grade()));
        return "/admin/user/detail";
    }

    /**
     * 编辑用户操作
     *

     * @return
     */
    @ResponseBody
    @RequestMapping("/editUser.action")
    public MsgItem editUser(@Validated User user, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return MsgItem.error("请填写正确的数据");
        }
        User findByUserName = userService.findByUserName(user.getUserName());
        if (findByUserName != null) {
            if (findByUserName.getUserId() != user.getUserId()) {
                return MsgItem.error("账户名称已存在");
            }
        }
        user.setUserState(1);
        userService.update(user);
        return MsgItem.success("编辑用户成功");
    }
			return MsgItem.error("该账号还未通过审核");	
		}
		session.setAttribute("userName", loginCheck.getUserName());
		session.setAttribute("user", loginCheck);
		return MsgItem.success("登录成功 ");

	}

	/**
	 * 注册
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toRegistPage.action")
	public String toRegistPage(Model model, HttpSession session){
		List<Grade> list = gradeService.find(new Grade());
		model.addAttribute("grade", list);
		return "/user/regist";
	}

	/**
	 * 添加用户信息
	 * @param user
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/addUserInfo.action")
	public MsgItem addUserInfo(User user, Model model, HttpSession session){
		if(StringUtils.isEmpty(user.getUserName())) {
			return MsgItem.error("请填写用户名");
		}
		if(StringUtils.isEmpty(user.getUserPwd())) {
			return MsgItem.error("请填写密码");
		}
		if(StringUtils.isEmpty(user.getEmail())) {
			return MsgItem.error("请填写邮箱");
		}
		if(StringUtils.isEmpty(user.getTelephone())) {
			return MsgItem.error("请填写联系方式");
		}
		if(userService.findByUserName(user.getUserName())!=null) {
    @RequestMapping("/toUserDetail.action")
    public String toUserDetail(User user, Model model, HttpSession session) {
        int userId = user.getUserId();
        User userInfo = userService.get(userId);
        model.addAttribute("user", userInfo);
        model.addAttribute("grade", gradeService.find(new Grade()));
        return "/admin/user/detail";
    }

    /**
     * 编辑用户操作
     *

     * @return
     */
    @ResponseBody
    @RequestMapping("/editUser.action")
    public MsgItem editUser(@Validated User user, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return MsgItem.error("请填写正确的数据");
        }
        User findByUserName = userService.findByUserName(user.getUserName());
        if (findByUserName != null) {
            if (findByUserName.getUserId() != user.getUserId()) {
                return MsgItem.error("账户名称已存在");
            }
        }
        user.setUserState(1);
        userService.update(user);
        return MsgItem.success("编辑用户成功");
    }

}

	 * 更新学生信息
	 * @param user
	 * @param model
	 * @param session
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/updateUserInfo.action")
	public MsgItem updateUserInfo(@Validated User user,BindingResult bindingResult,String newPwd, Model model, HttpSession session){
		if(bindingResult.hasErrors()) {
			return MsgItem.error("请填写正确的数据");
		}
		if(newPwd!= null && newPwd.trim().length()>0){
			String data = MD5Util.getData(newPwd);
			user.setUserPwd(data);
		}
		userService.update(user);
		user = userService.get(user.getUserId());
		session.setAttribute("user", user);
		return MsgItem.success("个人信息修改成功");			
	}

	//跳转到登录页面
	@RequestMapping("/user/exitSys.action")
	public String exitSystem(User user, Model model, HttpSession session){
		if(session.getAttribute("userName")!= null){
			session.removeAttribute("userName");
			session.removeAttribute("user");
			return "redirect:/index/toLogin.action";
		}
		return "redirect:/toLogin.action";	
	}

	//跳转到前台登录页面
	@RequestMapping("/toAbout.action")
	public String toAbout(User user, Model model, HttpSession session){
		User loginUser = (User) session.getAttribute("user");
		model.addAttribute("user", loginUser);
		return "/user/about";			
	}
}

					courseName+=course.getCourseName()+",";
				}
			}
			//判断最后一个字符是否为逗号,若是截取
			String str = courseName.substring(courseName.length() -1, courseName.length());
			if(",".equals(str)){
				str = courseName.substring(0, courseName.length()-1);
			}else{
				str = courseName;
			}
			g.setCourseId(str);
			Grade grade = gradeService.get(Integer.valueOf(g.getGradeId()));
			g.setGradeId(grade.getGradeName());
		}
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}
	
	/**
	 * 跳转到新增试卷页面
	 * @param paper
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddPaperPage.action")
	public String toAddPaperPage(Paper paper,Model model, HttpSession session){
		model.addAttribute("course", courseService.find(new Course()));
		model.addAttribute("grade", gradeService.find(new Grade()));
		model.addAttribute("type", typeService.find(new Type()));
		return "/admin/paper/add";
	}
	
	/**
	 * 新增试卷
	 * @param paper
	 * @param model
	 * @param session
	 * @return
	 */
	@ResponseBody
	@SuppressWarnings("unchecked")
	@RequestMapping("/addPaper.action")
	public MsgItem addPaper(@Validated Paper paper,@RequestParam int selectNum,@RequestParam int inputNum,
			@RequestParam int descNum, HttpSession session,BindingResult bindingResult){
		if(bindingResult.hasErrors()) {
			return MsgItem.error("请填写正确的数据");
		}

    /**
     * 注销登录
     *

     * @param session
     * @return
     */
    @RequestMapping("/exitSys.action")
    public String exitSys(User user, Model model, HttpSession session) {
        if (session.getAttribute("userName") != null) {
            session.removeAttribute("userName");
            session.removeAttribute("adminUser");
            return "forward:/admin/login.action";
        }
        return "/admin/login";
    }

    //跳转到题库录入页面
    @RequestMapping(value = "/toQueDep.action", method = RequestMethod.POST)
    public String toQueDep(Model model, HttpSession session) {
        return "/admin/info-reg";
    }

    //获取所有的用户信息
    @RequestMapping("/getAllUser.action")
    public String getAllUserInfo(@RequestParam(value = "page", defaultValue = "1") int page,
                                 User user, Model model, HttpSession session) {
        PageInfo<User> pageInfo = userService.findByPage(user, page, 5);
        List<User> dataList = pageInfo.getList();
        model.addAttribute("dataList", dataList);
        model.addAttribute("pageInfo", pageInfo);
        return "/admin/user/list";
    }

    //获取所有的用户信息
    @RequestMapping("/qryAllUser.action")
    @ResponseBody
    public List<User> qryAllUser(@RequestParam(value = "page", defaultValue = "1") int page,
	 * @param paper
	 * @param model
	 * @param session
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	@SuppressWarnings("unchecked")
	@RequestMapping("/dealPaper.action")
	@ResponseBody
	public MsgItem dealPaper(Paper paper, Model model, HttpSession session) throws UnsupportedEncodingException{
		User user = (User) session.getAttribute("user");
		if(user==null) {
			return MsgItem.error("请先登录");
		}
		 int paperId = paper.getPaperId();
		//答案临时存放
		String ans = paper.getScore();
		ans = URLDecoder.decode(ans,"UTF-8");
		String [] answer = null;
		if(ans.contains("&")){
			answer = ans.split("&");
		}
		Map map = new HashMap();
		
		map.put("paperId", paperId);
		map.put("userId", user.getUserId());
		Paper paperInfo = paperService.getPaperDetail(map);
		String []ids = paperInfo.getQuestionId().split(",");
		List<Question> question = new ArrayList<Question>();
		Question ques = null;
		int endScore = 0;
		ErrorBook book = new ErrorBook();
		book.setUserId(String.valueOf(user.getUserId()));
		for(int i = 2 ;i<answer.length;i++){
			String[] str = answer[i].split("=");
			//题号
			String str1 = str[0];
			ques = questionService.get(Integer.parseInt(str1));
			//数据库对应的答案
			String answer1 = ques.getAnswer();
			if(str.length>1){
				//学生的答案
				String str2 = str[1];
				if(!"9".equals(ques.getTypeId())){//判断是否为简答题
					if(str2.equals(answer1)){//如果用户答案和数据库中的答案一致
						endScore+=5;
					}else{//插入错题本
						book.setQuestion(ques);
						book.setCourseId(ques.getCourseId());
						book.setGradeId(ques.getGradeId());
						book.setUserAnswer(str2);
						bookService.insert(book);
					}
				}
	@SuppressWarnings("unchecked")
	@RequestMapping("/dealPaper.action")
	@ResponseBody
	public MsgItem dealPaper(Paper paper, Model model, HttpSession session) throws UnsupportedEncodingException{
		User user = (User) session.getAttribute("user");
		if(user==null) {
			return MsgItem.error("请先登录");
		}
		 int paperId = paper.getPaperId();
		//答案临时存放
		String ans = paper.getScore();
		ans = URLDecoder.decode(ans,"UTF-8");
		String [] answer = null;
		if(ans.contains("&")){
			answer = ans.split("&");
		}
		Map map = new HashMap();
		
		map.put("paperId", paperId);
		map.put("userId", user.getUserId());
		Paper paperInfo = paperService.getPaperDetail(map);
		String []ids = paperInfo.getQuestionId().split(",");
		List<Question> question = new ArrayList<Question>();
		Question ques = null;
		int endScore = 0;
		ErrorBook book = new ErrorBook();
		book.setUserId(String.valueOf(user.getUserId()));
		for(int i = 2 ;i<answer.length;i++){
			String[] str = answer[i].split("=");
			//题号
			String str1 = str[0];
			ques = questionService.get(Integer.parseInt(str1));
			//数据库对应的答案
			String answer1 = ques.getAnswer();
			if(str.length>1){
				//学生的答案
				String str2 = str[1];
				if(!"9".equals(ques.getTypeId())){//判断是否为简答题
					if(str2.equals(answer1)){//如果用户答案和数据库中的答案一致
						endScore+=5;
					}else{//插入错题本
						book.setQuestion(ques);
						book.setCourseId(ques.getCourseId());
	}
	@RequestMapping("/qryCoursePage.action")
	@ResponseBody
	public List<Course> qryCoursePage(@RequestParam(value="page", defaultValue="1") int page,
			Course course,Model model, HttpSession session){
		PageInfo<Course> pageInfo = courseService.findByPage(course, page, 5);
		List<Course> dataList = pageInfo.getList();
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return dataList;			
	}

	
	/**
	 * 删除课程信息
	 * @param courseId	课程编号,删除多个是,id用逗号分隔开
	 * @param model
	 * @return
	 */
	@RequestMapping("/deleteCourse.action")
	public String deleteCourse(String courseId, Model model){
		if(courseId != null){
			String ids[] = courseId.split(",");
			for(int i=0;i<ids.length;i++){
				courseService.delete(Integer.parseInt(ids[i]));
			}
		}
		return "redirect:/admin/course/toCoursePage.action";
	} 
	/**
	 * 跳转到添加课程信息页面
	 * @param course
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddCourse.action")
	public String toAddCourse(Course course, Model model, HttpSession session){
		return "/admin/course/add";			
	}
	
	/**
	 * 添加课程信息
	 * @param user
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/addCourse.action")
	public MsgItem addCourse(@Validated Course course, BindingResult result){
	 */
	@RequestMapping("/toAddGrade.action")
	public String toAddGrade(Course course, Model model, HttpSession session){
		List<Course> dataList = courseService.find(course);
		model.addAttribute("courselList", dataList);
		return "/admin/grade/add";			
	}
	
	/**
	 * 添加年级信息
	 * @param user
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/addGrade.action")
	public MsgItem addGrade(@Validated Grade grade,BindingResult bindingResult){
		if(bindingResult.hasErrors()) {
			return MsgItem.error("请填写正确的数据");
		}
		Grade findByName = gradeService.findByName(grade.getGradeName());
		if(findByName!=null) {
			return MsgItem.error("该年级名称已存在");
		}
		gradeService.insert(grade);
		return MsgItem.success("添加年级成功");			
	}
	
	
	
	/**
	 * 删除年级信息
	 * @param type
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/delGrade.action")
	public String delGrade(int gradeId, Model model, HttpSession session){
			gradeService.delete(gradeId);
		return "redirect:/admin/grade/toGradePage.action";			
	}
}


@RequestMapping("/home/error")
@Controller
public class ErrorBookController {
	@Autowired
	ErrorBookService bookService;
	@Autowired
	GradeService gradeService;
	@Autowired
	CourseService courseService;
	@Autowired
	TypeService typeService;
	@Autowired
	UserService userService;
	//跳转到我的错题本页面
	@RequestMapping("/toMyBooksPage.action")
	public String toMyBooksPage(User user, Model model, HttpSession session){
		User loginUser = (User) session.getAttribute("user");
		if(loginUser==null) {
			return "redirect:../../index/toLogin.action";
		}
		List<Grade> gradeList = gradeService.find(new Grade());
		List<Course> courseList = courseService.find(new Course());
		List<Type> typeList = typeService.find(new Type());
		Map map = new HashMap();
		map.put("userId", loginUser.getUserId());
		List<ErrorBook> bookList = bookService.getBookInfo(map);
		model.addAttribute("grade", gradeList);
		model.addAttribute("course", courseList);
		model.addAttribute("type", typeList);
		int simple=0;
		int commonly=0;
		int difficultys=0;
		for(ErrorBook book:bookList) {
			Question question = book.getQuestion();
			int difficulty = question.getDifficulty();
			if(difficulty==0) {
				simple=simple+1;
			}else if(difficulty==1) {
				commonly=commonly+1;
			}else {
				difficultys=difficultys+1;
	@RequestMapping("/toPaperPage.action")
	public String toPaperPage(@RequestParam(value="page", defaultValue="1") int page,
			Paper paper,Model model, HttpSession session){
		PageInfo<Paper> pageInfo = paperService.findAllPage(paper, page, 5);
		List<Paper> dataList = pageInfo.getList();
		Course course=null;
		for(Paper g : dataList){
			String courseName= "";
			String id = g.getCourseId();
			if(id != null){
				String ids[] = id.split(",");
				for(int i=0;i<ids.length;i++){
					course = courseService.get(Integer.parseInt(ids[i]));
					courseName+=course.getCourseName()+",";
				}
			}
			//判断最后一个字符是否为逗号,若是截取
			String str = courseName.substring(courseName.length() -1, courseName.length());
			if(",".equals(str)){
				str = courseName.substring(0, courseName.length()-1);
			}else{
				str = courseName;
			}
			g.setCourseId(str);
			Grade grade = gradeService.get(Integer.valueOf(g.getGradeId()));
			g.setGradeId(grade.getGradeName());
		}
		model.addAttribute("dataList", dataList);
		model.addAttribute("pageInfo", pageInfo);
		return "/admin/paper/list";			
	}
	
	
	/**
	 * 跳转到试卷管理页面
	 * @param course
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/qryAllPaper.action")
	@ResponseBody
	public List<Paper> qryAllPaper(@RequestParam(value="page", defaultValue="1") int page,
			Paper paper,Model model, HttpSession session){
		PageInfo<Paper> pageInfo = paperService.findAllPage(paper, page, 5);
		List<Paper> dataList = pageInfo.getList();
		Course course=null;
		for(Paper g : dataList){
			String courseName= "";
		return dataList;			
	}
	
	/**
	 * 删除年级信息
	 * @param gradeId	年级编号,删除多个是,id用逗号分隔开
	 * @param model
	 * @return
	 */
	@RequestMapping("/deleteGrade.action")
	public String deleteGrade(String gradeId, Model model){
		if(gradeId != null){
			String ids[] = gradeId.split(",");
			for(int i=0;i<ids.length;i++){
				gradeService.delete(Integer.parseInt(ids[i]));
			}
		}
		return "redirect:/admin/grade/toGradePage.action";
	} 
	/**
	 * 跳转到添加年级信息页面
	 * @param grade
	 * @param model
	 * @param session
	 * @return
	 */
	@RequestMapping("/toAddGrade.action")
	public String toAddGrade(Course course, Model model, HttpSession session){
		List<Course> dataList = courseService.find(course);
		model.addAttribute("courselList", dataList);
		return "/admin/grade/add";			
	}
	
	/**
	 * 添加年级信息
	 * @param user
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/addGrade.action")
	public MsgItem addGrade(@Validated Grade grade,BindingResult bindingResult){
		if(bindingResult.hasErrors()) {
			return MsgItem.error("请填写正确的数据");
		}
		Grade findByName = gradeService.findByName(grade.getGradeName());
		if(findByName!=null) {
			return MsgItem.error("该年级名称已存在");
/**
 * 试卷综合管理
 *
 */
@RequestMapping("/home/paper")
@Controller
public class PaperMgController {

	@Autowired
	UserService userService;
	@Autowired
	GradeService gradeService;
	@Autowired
	PaperService paperService;
	@Autowired
	CourseService courseService;
	@Autowired
	QuestionService questionService;
	@Autowired
	ErrorBookService bookService;
	
	@Autowired
	private TypeService typeService;
	
	//跳转到成绩查询页面
	@RequestMapping("/toScoreQry.action")
	public String toScoreQry(User user, Model model, HttpSession session){
		User loginUser = (User) session.getAttribute("user");
		if(loginUser==null) {
			return "redirect:../../index/toLogin.action";
		}
		List<Paper> paper = paperService.getUserPaperById(loginUser.getUserId());
		Course course = null;
		for(Paper p : paper){
			course = courseService.get(Integer.parseInt(p.getCourseId()));
			p.setCourseId(course.getCourseName());

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐