基于javaweb和mysql的ssm+maven在线高中考试系统(java+ssm+jsp+mysql+maven)
·
基于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());






更多推荐



所有评论(0)