基于javaweb+mysql的ssm考试在线报名管理系统(java+ssm+js+jsp+mysql)

基于javaweb+mysql的ssm考试在线报名管理系统(java+ssm+js+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM考试在线报名管理系统(java+ssm+js+jsp+mysql)

项目介绍

考务管理员角色包含以下功能: 考务管理员登录,教务办公室管理,考场管理,考试管理,考场分配管理,报名管理等功能。

管理员角色包含以下功能: 管理员登录,学院管理,班级管理,学生管理,考务管理员管理,管理员管理等功能。

学生角色包含以下功能: 学生登录,查看我的报名,报名考试,密码修改,缴费等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
	/**
	 * unixbox 局部刷新中提交后刷新父页面
	 * @param scope
	 * @param message
	 * @param rel
	 */
	public static void addRelMessage(Map<String, Object> scope, String message,
			String rel) {
		scope.put(messageKey, message);
		scope.put("rel", rel);
	}

	public static void addForwardUrl(Map<String, Object> scope, String url) {
		if (StringUtil.notEmpty(url)) {
			scope.put(forwardUrlKey, url);
			scope.put(callbackType, "forward");
		}
	}

	public static void addMessages(Map<String, Object> scope, String message,
			String url) {
		scope.put(messageKey, message);
		addForwardUrl(scope, url);
	}

	/**
	 * 关闭当前标签
	 * 
	 * @param scope
	 * @param message
	 * @param url
	 */
	public static void addCloseMessages(Map<String, Object> scope,
			String message, String url) {
		scope.put(messageKey, message);
		if (StringUtil.notEmpty(url)) {
			scope.put(forwardUrlKey, url);
			scope.put(callbackType, "closeCurrent");
		}
	}

	public static void addMessage(HttpServletRequest scope, String message) {
		scope.setAttribute(messageKey, message);
	}
			String url,String rel) {
		scope.put(confirmMsg, message);
		scope.put(forwardUrlKey, url);
		scope.put(callbackType, "forwardConfirm");
		if (StringUtil.isEmpty(rel)) {
			scope.put(navTabId, "navTab");
		} else {
			scope.put(navTabId, rel);
		}
	}
}

@Controller
@RequestMapping("/sys")
public class ExamRoomAction extends BaseAction {
	private String			actionname	= "考场分配";
	private String			actionclass	= "ExamRoom";
	@Autowired
	private ExamRoomService	service;

	@Autowired
	private ExamService		examService;

	@Autowired
	private RoomService		roomService;

	@RequestMapping(value = "/add2ExamRoom.do")
	public String add2() {
		putRequestValue("list1", examService.selectAll());
		putRequestValue("list2", roomService.selectAll());
		request.setAttribute("actionname", actionname);
		request.setAttribute("actionclass", actionclass);
		if (!user.getUserPassword().equals(oldpassword)) {
			MessageUtil.addMessage(request, "旧密码错误.");
			return ERROR;
		}

		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

		sysUserService.updateAll(user);

		MessageUtil.addMessage(request, "修改成功.");
		return SUCCESS;
	}

	@RequestMapping(value = "/updateSimpleUserPassword.do")
	public String updateSimpleUserPassword(String oldpassword, String password) {
		SimpleUser user = getSimpleUser();
		user = simpleUserService.get(user.getId());
		MD5 md = new MD5();
		oldpassword = md.getMD5ofStr(oldpassword);

		if (!user.getUserPassword().equals(oldpassword)) {
			MessageUtil.addMessage(request, "旧密码错误.");
			return ERROR;
		}

		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

		simpleUserService.updateAll(user);

		MessageUtil.addMessage(request, "修改成功.");
		return SUCCESS;
	}

	@RequestMapping(value = "/updateTeacherPassword.do")
	public String updateTeacherPassword(String oldpassword, String password) {
		Teacher user = getTeacher();
		user = teacherService.get(user.getId());
		MD5 md = new MD5();
		oldpassword = md.getMD5ofStr(oldpassword);

		if (!user.getUserPassword().equals(oldpassword)) {
			MessageUtil.addMessage(request, "旧密码错误.");
			return ERROR;
		}

		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

			LinkedList<String> parmnames = new LinkedList<String>();
			// 字段值集合
			LinkedList<Object> parmvalues = new LinkedList<Object>();
			Page p = FieldUtil.createPage(request, Dept.class, parmnames, parmvalues);

			//			if (parmnames.contains("type")) {
			//				actionname1 = (String) parmvalues.get(parmnames.indexOf("type"));
			//			}

			Page page = service.selectPage(p, Dept.class);
			session.setAttribute(Constant.SESSION_PAGE, page);

			request.setAttribute("actionname", actionname);
			request.setAttribute("actionclass", actionclass);
			return "listDept";
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
	}

}

@Controller
@RequestMapping("/sys")
		}
	}

	@RequestMapping(value = "/addOffice.do")
	public String add(Office bean) {
		try {
			service.add(bean);
			MessageUtil.addMessage(request, "添加成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "添加失败.");
			return ERROR;
		}

	}

	@RequestMapping(value = "/updateOffice.do")
	public String update(Office bean) {
		try {
			service.update(bean);
			MessageUtil.addMessage(request, "更新成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "更新失败.");
			return ERROR;
		}
	}

	@RequestMapping(value = "/queryOffice.do")
	public String query() {
		try {
			// 字段名称集合
			LinkedList<String> parmnames = new LinkedList<String>();
			// 字段值集合
			LinkedList<Object> parmvalues = new LinkedList<Object>();
			Page p = FieldUtil.createPage(request, Office.class, parmnames, parmvalues);

			//			if (parmnames.contains("type")) {
			//				actionname1 = (String) parmvalues.get(parmnames.indexOf("type"));
			//			}

			Page page = service.selectPage(p, Office.class);
			session.setAttribute(Constant.SESSION_PAGE, page);
	public String get(int uid) {
		try {
			Teacher bean = service.get(uid);
			request.setAttribute("modifybean", bean);

			request.setAttribute("actionname", actionname);
			request.setAttribute("actionclass", actionclass);
			return "modifyTeacher";
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "获取信息失败.");
			return ERROR;
		}
	}

	@RequestMapping(value = "/deleteTeacher.do")
	public String delete(String ids) {
		try {
			service.deleteTeacher(ids);
			MessageUtil.addRelMessage(request, "删除信息成功.", "mainquery");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "删除信息失败.");
			return ERROR;
		}
	}

	@RequestMapping(value = "/addTeacher.do")
	public String add(Teacher bean) {
		try {
			service.addTeacher(bean);
			MessageUtil.addMessage(request, "添加成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "添加失败.");
			return ERROR;
		}

	}

	@RequestMapping(value = "/updateTeacher.do")
	public String update(Teacher bean) {
		try {
			service.updateTeacher(bean);
			MessageUtil.addMessage(request, "更新成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "更新失败.");
			return ERROR;
		}

@Controller
@RequestMapping("/sys")
public class SimpleUserAction extends BaseAction {
	private String				actionname	= "学生";
	private String				actionclass	= "SimpleUser";
	@Autowired
	private SimpleUserService	service;
	@Autowired
	private DeptService			deptService;
	@Autowired
	private ClazzService		clazzService;

	@RequestMapping(value = "/add2SimpleUser.do")
	public String add2() {
		putRequestValue("list1", deptService.selectAll());
		putRequestValue("list2", clazzService.selectAll());
		request.setAttribute("actionname", actionname);
		request.setAttribute("actionclass", actionclass);
		return "addSimpleUser";
	}

	@RequestMapping(value = "/getSimpleUser.do")
	public String get(int uid) {
		try {
			putRequestValue("list1", deptService.selectAll());
			putRequestValue("list2", clazzService.selectAll());
			SimpleUser bean = service.get(uid);
			request.setAttribute("modifybean", bean);

			request.setAttribute("actionname", actionname);
			request.setAttribute("actionclass", actionclass);
			putRequestValue("list1", examService.selectAll());
			return "listExamRoom";
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
	}

}

@Controller
@RequestMapping("/sys")
public class RoomAction extends BaseAction {
	private String			actionname	= "考场";
	private String			actionclass	= "Room";
	@Autowired
	private RoomService		service;

	@Autowired
	private OfficeService	officeService;

	@RequestMapping(value = "/add2Room.do")
	public String add2() {
		putRequestValue("list", officeService.selectAll());
		request.setAttribute("actionname", actionname);
		request.setAttribute("actionclass", actionclass);
		return "addRoom";
	}

	@RequestMapping(value = "/getRoom.do")
	public String get(int uid) {
		try {
			putRequestValue("list", officeService.selectAll());

public class FileUtil {
	private static List<String> exts = new ArrayList<String>();
	static {
		exts.add("image/jpeg");
	}

	public static String readFile(String filepath, String encoding) {
		String ret = "";

		//File file = new File(filepath);
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new InputStreamReader(new FileInputStream(filepath), encoding));
			String tempString = null;
			while ((tempString = reader.readLine()) != null) {
				ret += tempString;
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}

		return ret;
	}

	public static boolean fileUploadAble(String ext) {
		// return exts.contains(ext);
		return true;
	}

			fieldMap.put("性别", "userGender");
			fieldMap.put("联系电话", "userPhone");
			fieldMap.put("邮箱", "userEmail");
			fieldMap.put("联系地址", "userAddress");
			fieldMap.put("出生日期", "userBirth");

			File storageFile = new File(getResourceFile() + File.separator + filename);

			List<UserBean> list = ExcelUtil.excelToList(new FileInputStream(storageFile), sheetName, UserBean.class, fieldMap, null);

			service.addStudent(list);
			MessageUtil.addMessage(request, "导入成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "导入失败.");
			return ERROR;
		}

	}

	@RequestMapping(value = "/updateSimpleUser.do")
	public String update(SimpleUser bean) {
		try {
			service.updateSimpleUser(bean);
			MessageUtil.addMessage(request, "更新成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "更新失败.");
			return ERROR;
		}
	}

	@RequestMapping(value = "/querySimpleUser.do")
	public String query() {
		try {
			// 字段名称集合
			LinkedList<String> parmnames = new LinkedList<String>();
			// 字段值集合
			LinkedList<Object> parmvalues = new LinkedList<Object>();
			Page p = FieldUtil.createPage(request, SimpleUser.class, parmnames, parmvalues);

			//			if (parmnames.contains("type")) {
			//				actionname1 = (String) parmvalues.get(parmnames.indexOf("type"));
			//			}

			Page page = service.selectPage(p, SimpleUser.class);
			session.setAttribute(Constant.SESSION_PAGE, page);

	/**
	 * @MethodName : excelToList
	 * @Description : 将Excel转化为List
	 * @param in
	 *            :承载着Excel的输入流
	 * @param sheetIndex
	 *            :要导入的工作表序号
	 * @param entityClass
	 *            :List中对象的类型(Excel中的每一行都要转化为该类型的对象)
	 * @param fieldMap
	 *            :Excel中的中文列头和类的英文属性的对应关系Map
	 * @param uniqueFields
	 *            :指定业务主键组合(即复合主键),这些列的组合不能重复
	 * @return :List
	 * @throws ExcelException
	 */
	public static <T> List<T> excelToList(InputStream in, String sheetName, Class<T> entityClass, LinkedHashMap<String, String> fieldMap, String[] uniqueFields)
			throws ExcelException {

		// 定义要返回的list
		List<T> resultList = new ArrayList<T>();

		try {

			// 根据Excel数据源创建WorkBook
			Workbook wb = Workbook.getWorkbook(in);
			// 获取工作表
			Sheet sheet = wb.getSheet(sheetName);

			// 获取工作表的有效行数
			int realRows = 0;
			for (int i = 0; i < sheet.getRows(); i++) {

				int nullCols = 0;
				for (int j = 0; j < sheet.getColumns(); j++) {
					Cell currentCell = sheet.getCell(j, i);
					if (currentCell == null || "".equals(currentCell.getContents().toString())) {
						nullCols++;
					}
				}

				if (nullCols == sheet.getColumns()) {
					break;
				} else {
					realRows++;
				}
			}

			// 如果Excel中没有数据则提示错误
			if (realRows <= 1) {
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (bis != null)
				bis.close();
			if (bos != null)
				bos.close();
		}

	}
}

@Controller
@RequestMapping("/sys")
public class ExamStudentAction extends BaseAction {
	private String				actionname	= "报名";
	private String				actionclass	= "ExamStudent";
	@Autowired
	public String add(Teacher bean) {
		try {
			service.addTeacher(bean);
			MessageUtil.addMessage(request, "添加成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "添加失败.");
			return ERROR;
		}

	}

	@RequestMapping(value = "/updateTeacher.do")
	public String update(Teacher bean) {
		try {
			service.updateTeacher(bean);
			MessageUtil.addMessage(request, "更新成功.");
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			MessageUtil.addMessage(request, "更新失败.");
			return ERROR;
		}
	}

	@RequestMapping(value = "/queryTeacher.do")
	public String query() {
		try {
			// 字段名称集合
			LinkedList<String> parmnames = new LinkedList<String>();
			// 字段值集合
			LinkedList<Object> parmvalues = new LinkedList<Object>();
			Page p = FieldUtil.createPage(request, Teacher.class, parmnames, parmvalues);

			//			if (parmnames.contains("type")) {
			//				actionname1 = (String) parmvalues.get(parmnames.indexOf("type"));
			//			}

			Page page = service.selectPage(p, Teacher.class);
		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

		sysUserService.updateAll(user);

		MessageUtil.addMessage(request, "修改成功.");
		return SUCCESS;
	}

	@RequestMapping(value = "/updateSimpleUserPassword.do")
	public String updateSimpleUserPassword(String oldpassword, String password) {
		SimpleUser user = getSimpleUser();
		user = simpleUserService.get(user.getId());
		MD5 md = new MD5();
		oldpassword = md.getMD5ofStr(oldpassword);

		if (!user.getUserPassword().equals(oldpassword)) {
			MessageUtil.addMessage(request, "旧密码错误.");
			return ERROR;
		}

		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

		simpleUserService.updateAll(user);

		MessageUtil.addMessage(request, "修改成功.");
		return SUCCESS;
	}

	@RequestMapping(value = "/updateTeacherPassword.do")
	public String updateTeacherPassword(String oldpassword, String password) {
		Teacher user = getTeacher();
		user = teacherService.get(user.getId());
		MD5 md = new MD5();
		oldpassword = md.getMD5ofStr(oldpassword);

		if (!user.getUserPassword().equals(oldpassword)) {
			MessageUtil.addMessage(request, "旧密码错误.");
			return ERROR;
		}

		password = md.getMD5ofStr(password);
		user.setUserPassword(password);

		teacherService.updateAll(user);

		MessageUtil.addMessage(request, "修改成功.");
		return SUCCESS;
	}

	@RequestMapping(value = "/logout.do")

	protected double getDouble(String name) {
		return Double.valueOf(getHttpServletRequest().getParameter(name));
	}

	protected float getFloat(String name) {
		return Float.valueOf(getHttpServletRequest().getParameter(name));
	}

	protected void print(String message) {
		try {
			getHttpServletResponse().setCharacterEncoding("UTF-8");
			getHttpServletResponse().getWriter().print(message);
			getHttpServletResponse().getWriter().flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected Object getSessionUser() {
		SessionBean sb = (SessionBean) session.getAttribute(Constant.SESSION_BEAN);
		return sb.getUser();
	}

	protected SimpleUser getSimpleUser() {
		SessionBean sb = (SessionBean) session.getAttribute(Constant.SESSION_BEAN);
		return (SimpleUser) sb.getUser();
	}

	protected Teacher getTeacher() {
		SessionBean sb = (SessionBean) session.getAttribute(Constant.SESSION_BEAN);
		return (Teacher) sb.getUser();
	}

	protected SysUser getSysUser() {
		SessionBean sb = (SessionBean) session.getAttribute(Constant.SESSION_BEAN);
		return (SysUser) sb.getUser();
	}

	//bean.setImgFile(getUpdateFileField("imgFile"));
			m1.addChild(new SubMenu("navtab" + (index++), "考试管理", "navtab", request.getContextPath() + "/sys/queryExam.do"));
			m1.addChild(new SubMenu("navtab" + (index++), "考场分配管理", "navtab", request.getContextPath() + "/sys/queryExamRoom.do"));
			m1.addChild(new SubMenu("navtab" + (index++), "报名管理", "navtab", request.getContextPath() + "/sys/queryExamStudentAll.do"));

			list.add(m1);
		}
		if (getSessionUser() instanceof SimpleUser) {
			MenuBean m1 = new MenuBean("系统管理");
			m1.addChild(new SubMenu("navtab" + (index++), "我的报名", "navtab", request.getContextPath() + "/sys/queryExamStudent.do"));
			list.add(m1);
		}
		return list;
	}

	@RequestMapping(value = "/login.do")
	public String login(String username, String password, String loginType, String checkcode) throws Exception {
		log.info(username + " " + password + " " + loginType);
		String errorMessage = "登录失败,请稍候重试";
		try {
			String code = (String) session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
			if (code == null) {
				request.getSession(false).invalidate();
				return "redirect:/index.jsp";
			} else {
			}
			checkcode = StringUtil.stringVerification(checkcode);
			do {
				if (!code.toLowerCase().equals(checkcode.toLowerCase())) {
					errorMessage = "验证码错误";
					break;
				}
				username = StringUtil.stringVerification(username).toLowerCase();
				MD5 md = new MD5();
				password = md.getMD5ofStr(password);
				Object bean = sysUserService.login(username, password, loginType);
				if (bean == null) {
					errorMessage = "账号或者密码错误";
					break;
				}

				SessionBean sb = new SessionBean();
				sb.setUser(bean);
				session.setAttribute(Constant.SESSION_BEAN, sb);

				if (loginType.equals(SysUser.class.getSimpleName())) {
					return "main";
			putRequestValue("list1", examService.selectAll());
			return "queryExamStudentAll";
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
	}

}

@Controller
@RequestMapping("/sys")
public class SimpleUserAction extends BaseAction {
	private String				actionname	= "学生";
	private String				actionclass	= "SimpleUser";
	@Autowired
	private SimpleUserService	service;
	@Autowired
	private DeptService			deptService;
	@Autowired
	private ClazzService		clazzService;

	@RequestMapping(value = "/add2SimpleUser.do")
	public String add2() {
		putRequestValue("list1", deptService.selectAll());
		putRequestValue("list2", clazzService.selectAll());
		request.setAttribute("actionname", actionname);
		request.setAttribute("actionclass", actionclass);
		return "addSimpleUser";
	}

	@RequestMapping(value = "/getSimpleUser.do")
			return "listClazz";
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
	}

}

@Controller
@RequestMapping("/sys")
public class DeptAction extends BaseAction {
	private String		actionname	= "学部";
	private String				actionclass	= "Dept";
	@Autowired
	private DeptService	service;

	@RequestMapping(value = "/add2Dept.do")
	public String add2() {
		request.setAttribute("actionname", actionname);
		request.setAttribute("actionclass", actionclass);
		return "addDept";
	}

	@RequestMapping(value = "/getDept.do")
	public String get(int uid) {
		try {
			Dept bean = service.get(uid);
			request.setAttribute("modifybean", bean);

			request.setAttribute("actionname", actionname);
			request.setAttribute("actionclass", actionclass);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值