基于javaweb+mysql的jsp+servlet在线考试管理系统(java+jsp+jquery+servlet+mysql)

基于javaweb+mysql的jsp+servlet在线考试管理系统(java+jsp+jquery+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的JSP+Servlet在线考试管理系统(java+jsp+jquery+servlet+mysql)

项目介绍

本项目包含管理员与学生两个角色; 管理员角色包含以下功能: 登录页面,管理员首页,考生信息管理,成绩管理,考生录入,题库管理,题目录入,试卷管理等功能。

学生角色包含以下功能: 学生登录,学生主页,开始考试,查看成绩等功能。

PS:在添加学生或者添加试题的时候,可以上传文件来实现,文件的模板在管理试题和管理学生的时候,点击下载就有了。

环境需要

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版本; 6.是否Maven项目:否;

技术栈

  1. 后端:Servlet 2. 前端:JSP+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
			ResultSet rs = db.query("SELECT * FROM question");
			//区分每种题型,将所有相同题型的行号存入双向循环链表,用于随机取题目
			LinkedList<Integer> list1 = new LinkedList<Integer>();
			LinkedList<Integer> list2 = new LinkedList<Integer>();
			LinkedList<Integer> list3 = new LinkedList<Integer>();
			LinkedList<Integer> list4 = new LinkedList<Integer>();
			LinkedList<Integer> list5 = new LinkedList<Integer>();
			while (rs.next()) {	//遍历整个题库表
				switch (rs.getString(2)) {	//多分支语句区分题型
				case "单选题":
					list1.add(rs.getRow());//获取所有选择题的行号
					break;
				case "多选题":
					list2.add(rs.getRow());
					break;
				case "判断题":
					list3.add(rs.getRow());
					break;
				case "填空题":
					list4.add(rs.getRow());
					break;
				case "简答题":
					list5.add(rs.getRow());
					break;
				default:
					break;
				}
			}

					
			listALL.addAll(randomQue(list1, rs,num1));	
			listALL.addAll(randomQue(list2, rs,num2));	
			listALL.addAll(randomQue(list3, rs,num3));	
			listALL.addAll(randomQue(list4, rs,num4));	
			listALL.addAll(randomQue(list5, rs,num5));	

			tihao=0;	//题号从0开始
			HttpSession session = request.getSession();
			session.setAttribute("examTime", examTime);
			session.setAttribute("ques", listALL);	//把试卷数组保存到Session对象
			//重定向到试卷页面,供考生作答
			response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");

		} catch (Exception e) {
			e.printStackTrace();
		}

		for (Part imgPath : request.getParts()) { // 遍历上传的每一个part
			if (imgPath.getName().startsWith("img")) {
				// 上传按钮也是part对象,在这里用if条件语句过滤它
				// 只接受part名称标头为"img"的正文图片数据
				String fileName1 = imgPath.getSubmittedFileName(); // 获取单张图片的文件名
				if (fileName1 == null || fileName1.length() == 0)
					break;
				try {
					imgPath.write(savePath + "/" + fileName1); // 写入图片到tomcat的发布目录下
					
				} catch (Exception e) {
					System.out.println(e);
				}

				/**
				 * 接下来要把图片从【tomcat发布目录】拷贝到【当前项目目录】 原因:发布目录在tomcat重启会重新发布,上传的图片需要迁移到永久保留的位置
				 * 目的:把图片拷贝到项目目录,上传的图片得以保留,可以任意次数发布
				 */
				try {// try能保证流被正确关闭
					Path sorcePath = Paths.get(savePath + "/" + fileName1); // 图片的原始路径(tomcat的发布目录下)
					// 图片的的目标路径(当前项目目录)
					Path targetPath = Paths.get("E:\\WorkSpace_All\\cli_workspace\\" + request.getContextPath()
							+ "/WebRoot/images/" + fileName1);
					Files.copy(sorcePath, targetPath, StandardCopyOption.REPLACE_EXISTING); // 复制文件,并替换已存在的文件
				} catch (Exception e) {
				}

			}
		}

		try {
			DatabassAccessObject db;
			switch (mode) {
			case 1:
				List<QuestionBean> listExcel = QuestionExcelService.getAllByExcel(excelSorcePath);
				db = new DatabassAccessObject();
				for (QuestionBean queBean : listExcel) {
					if (!QuestionExcelService.isExist(queBean.getQ_id())) {
						db.insert("insert into question values (?,?,?,?,?,?,?) ; ", queBean.getQ_id(),
								queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
			for (int i = cpage * per; i < cpage * per + per && i < total; i++) {
				queTableList.add(queBeanAllList.get(i));
			}
			String temp=request.getParameter("modify_id");
			request.setAttribute("modify_id", temp);
			request.setAttribute("total", total);
			request.setAttribute("queTableList", queTableList);
			request.getRequestDispatcher("/teacher/teacher_que_manage.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

@WebServlet("/ShowScorePage")
public class ScoreShowByPage extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		// 如果没有参数传递过来,初定每页显示10条记录,显示第一页。
		// 然后把这两个参数压到request容器传到前台页面。request容器是前台页面收到即销毁的容器。
		int cpage = 0;
		int per = 10;
		if (request.getParameter("cpage") != null) {
			break;
		case 4:
			grade = "不及格";
			break;
		case 5:
			grade = "缺考";
			break;
		default:
			break;
		}

		try {

			DatabassAccessObject db = new DatabassAccessObject();
//			ResultSet rs=db.query("select * from student where id = ?", ID);
//			if (rs.next()) {
//				db.modify(sql, args)
//			}
			Boolean boolean1 = db.modify("UPDATE student SET  name = ? , class = ? , score = ? WHERE ID = ? ", name,
					CLASS, score, ID);
			if (boolean1) {
				db.modify(
						"UPDATE score set score=?, score_sing=?, score_muti=?, score_jud=?, score_fill=?, score_ess=?, grade=? where ID=? ",
						score, score_sing, score_muti, score_jud, score_fill, score_ess, grade, ID);
			}
			PrintWriter out = response.getWriter();
			out.println("<script language=javascript>alert('已成功处理该条学生记录');window.location='" + request.getContextPath()
					+ "/ShowScorePage?cpage=" + cpage + "&per=" + per + "'</script>");

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}


					
			listALL.addAll(randomQue(list1, rs,num1));	
			listALL.addAll(randomQue(list2, rs,num2));	
			listALL.addAll(randomQue(list3, rs,num3));	
			listALL.addAll(randomQue(list4, rs,num4));	
			listALL.addAll(randomQue(list5, rs,num5));	

			tihao=0;	//题号从0开始
			HttpSession session = request.getSession();
			session.setAttribute("examTime", examTime);
			session.setAttribute("ques", listALL);	//把试卷数组保存到Session对象
			//重定向到试卷页面,供考生作答
			response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	/**
	 * 负责每种题型、指定数量的随机抽题
	 * @param list	题目链表(存储了一类题型的行号)
	 * @param rs	数据表结果集
	 * @param count 抽取指定的题目数量
	 * @return		返回一个(存储了count条指定类型的题目)数组
	 */
	public ArrayList<QuestionBean> randomQue(LinkedList<Integer> list,ResultSet rs,int count) {
		int m = -1;
		int index = -1;
		ArrayList<QuestionBean> listA = new ArrayList<QuestionBean>();
		while (list.size() > 0&&count>0) {
			count--;
			m = (int) (Math.random() * list.size());
			index = list.get(m);
			System.out.println(index);
			list.remove(m);
			tihao++;
			try {
				rs.absolute(index);
			String temp=request.getParameter("modify_id");
			System.out.println(temp);
			request.setAttribute("modify_id", temp);
			request.setAttribute("total", total);
			request.setAttribute("stuTableList", stuTableList);
			request.getRequestDispatcher("/teacher/teacher_score_manage.jsp").forward(request,
					response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

@WebServlet("/ScoreModify")
public class ScoreModifyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8"); // 编码处理
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");

			ResultSet rs = db.query("SELECT * FROM question");
			//区分每种题型,将所有相同题型的行号存入双向循环链表,用于随机取题目
			LinkedList<Integer> list1 = new LinkedList<Integer>();
			LinkedList<Integer> list2 = new LinkedList<Integer>();
			LinkedList<Integer> list3 = new LinkedList<Integer>();
			LinkedList<Integer> list4 = new LinkedList<Integer>();
			LinkedList<Integer> list5 = new LinkedList<Integer>();
			while (rs.next()) {	//遍历整个题库表
				switch (rs.getString(2)) {	//多分支语句区分题型
				case "单选题":
					list1.add(rs.getRow());//获取所有选择题的行号
					break;
				case "多选题":
					list2.add(rs.getRow());
					break;
				case "判断题":
					list3.add(rs.getRow());
					break;
				case "填空题":
					list4.add(rs.getRow());
					break;
				case "简答题":
					list5.add(rs.getRow());
					break;
				default:
					break;
				}
			}

					
			listALL.addAll(randomQue(list1, rs,num1));	
			listALL.addAll(randomQue(list2, rs,num2));	
			listALL.addAll(randomQue(list3, rs,num3));	
			listALL.addAll(randomQue(list4, rs,num4));	
			listALL.addAll(randomQue(list5, rs,num5));	

			tihao=0;	//题号从0开始
			HttpSession session = request.getSession();
			session.setAttribute("examTime", examTime);
			session.setAttribute("ques", listALL);	//把试卷数组保存到Session对象
			//重定向到试卷页面,供考生作答
			response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	/**
	 * 负责每种题型、指定数量的随机抽题
	 * @param list	题目链表(存储了一类题型的行号)
	 * @param rs	数据表结果集
	 * @param count 抽取指定的题目数量
	 * @return		返回一个(存储了count条指定类型的题目)数组
				default:
					break;
				}
			}

					
			listALL.addAll(randomQue(list1, rs,num1));	
			listALL.addAll(randomQue(list2, rs,num2));	
			listALL.addAll(randomQue(list3, rs,num3));	
			listALL.addAll(randomQue(list4, rs,num4));	
			listALL.addAll(randomQue(list5, rs,num5));	

			tihao=0;	//题号从0开始
			HttpSession session = request.getSession();
			session.setAttribute("examTime", examTime);
			session.setAttribute("ques", listALL);	//把试卷数组保存到Session对象
			//重定向到试卷页面,供考生作答
			response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	/**
	 * 负责每种题型、指定数量的随机抽题
	 * @param list	题目链表(存储了一类题型的行号)
	 * @param rs	数据表结果集
	 * @param count 抽取指定的题目数量
	 * @return		返回一个(存储了count条指定类型的题目)数组
	 */
	public ArrayList<QuestionBean> randomQue(LinkedList<Integer> list,ResultSet rs,int count) {
		int m = -1;
		int index = -1;
		ArrayList<QuestionBean> listA = new ArrayList<QuestionBean>();
		while (list.size() > 0&&count>0) {
			count--;
			m = (int) (Math.random() * list.size());
			index = list.get(m);
			System.out.println(index);
			list.remove(m);
			tihao++;
			try {
				rs.absolute(index);
				QuestionBean queBean = new QuestionBean();
				queBean.setQ_id(String.valueOf(tihao));
				queBean.setQ_type(rs.getString(2));
				queBean.setQ_title(rs.getString(3));
				String selectString = rs.getString(4);
				System.out.println(rs.getString(2));
				queBean.setQ_score(rs.getString(5));
			case 2://删
				db.modify("delete from question where number = ? ; ", number);
				break;
			default:
				break;
			}		
		} catch (Exception e) {
		}
		
		if (mode==0) {
			PrintWriter out = response.getWriter();
		}else
		response.sendRedirect("ShowQuePage");

	}

}

/**
 * 该类负责处理登录操作
 * 匹配账号密码是否对应
 * 将登录信息存储到loginBean
 */
@WebServlet("/HandleLogin")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (Exception e) {
		}
	}
	}

}

/**
 * 分页显示题库表的题目信息
 * 默认每页10条
 */
@WebServlet("/ShowQuePage")
public class QuestionShowByPageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 如果没有参数传递过来,初定每页显示10条记录,显示第一页。
		// 然后把这两个参数压到request容器传到前台页面。request容器是前台页面收到即销毁的容器。
		int cpage = 0;
		int per = 10;
		if (request.getParameter("cpage") != null) {
			cpage = Integer.parseInt(request.getParameter("cpage"));
		}
		request.setAttribute("cpage", cpage);
		if (request.getParameter("per") != null) {
			per = Integer.parseInt(request.getParameter("per"));
		}
		request.setAttribute("per", per);
		// 之后进行数据库的查询
				db = new DatabassAccessObject();
				for (StudentInfoBean stuBean : stuListExcel) {
					if (!StuInfoExcelService.isExist(stuBean.getID())) {
						db.insert("INSERT INTO student (ID,password,name,class,score) VALUES (?,?,?,?,?) ; ",
								stuBean.getID(), stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(),
								stuBean.getScore());
					} else {
						db.modify("UPDATE student SET  password = ? , name = ? , class = ? , score = ? WHERE ID = ? ;",
								stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(), stuBean.getScore(),
								stuBean.getID());
					}
				}

				System.out.println("数据导入成功");
				PrintWriter out2 = response.getWriter();
				out2.println("<script language=javascript>alert('数据导入成功');window.location='" + request.getContextPath()
						+ "/ShowStuPage';</script>");
			default:
				break;
			}

		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

	}

}

			q_type=request.getParameter("q_type");
			if (q_title!=null) {
				rs=db.query("select * from question where title LIKE '%"+q_title+"%' ;");
			}else if(q_type!=null&&q_type.length()>0){
				
				rs=db.query("select * from question where type='"+q_type+"' ;");
			}
			else {
				rs = db.query("select\r\n" + 
						"    *\r\n" + 
						"from\r\n" + 
						"    question\r\n" + 
						"order by\r\n" + 
						"    case \r\n" + 
						"      when type='单选题' then 1\r\n" + 
						"      when type='多选题' then 2\r\n" + 
						"			when type='判断题' then 3\r\n" + 
						"			when type='填空题' then 4\r\n" + 
						"			when type='简答题' then 5\r\n" + 
						"    end");
			}
			// 所有查询结果存入数组
			int total = 0;
			while (rs.next()) {
				QuestionBean queBean = new QuestionBean();
				queBean.setQ_id(rs.getString("number"));
				queBean.setQ_type(rs.getString("type"));
				queBean.setQ_title(rs.getString("title"));
				String selectString = rs.getString("select");
				if (selectString != null) {
					queBean.setQ_select(selectString);
					String[] temp = selectString.split("\\@");
					queBean.setOptions(temp);
				}
				queBean.setQ_score(rs.getString("score"));
				queBean.setQ_key(rs.getString("key"));
				queBean.setQ_img(rs.getString("img"));
				queBeanAllList.add(queBean);
				total++;
			}
			ArrayList<QuestionBean> queTableList = new ArrayList<QuestionBean>();
			for (int i = cpage * per; i < cpage * per + per && i < total; i++) {
				queTableList.add(queBeanAllList.get(i));
			}
			String temp=request.getParameter("modify_id");
			request.setAttribute("modify_id", temp);
			request.setAttribute("total", total);
			request.setAttribute("queTableList", queTableList);
			request.getRequestDispatcher("/teacher/teacher_que_manage.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
				String name=rs.getString(3);
				Float score_sing=Float.valueOf(rs.getString(4));
				Float score_muti=Float.valueOf(rs.getString(5));
				Float score_jud=Float.valueOf(rs.getString(6));
				Float score_fill=Float.valueOf(rs.getString(7));
				Float score_ess=Float.valueOf(rs.getString(8));
				Float score=Float.valueOf(rs.getString(9));
				String grade=rs.getString(10);
				stuBeanAllList.add(new StudentInfoBean(ID, CLASS, name, score_sing, score_muti, score_jud, score_fill, score_ess, score,grade));
				total++;
			}
			// 再通过根据cpage与per求出要推回给前台显示的数组
			ArrayList<StudentInfoBean> stuTableList = new ArrayList<StudentInfoBean>();
			for (int i = cpage * per; i < cpage * per + per && i < total; i++) {
				stuTableList.add(stuBeanAllList.get(i));
			}
			String temp=request.getParameter("modify_id");
			System.out.println(temp);
			request.setAttribute("modify_id", temp);
			request.setAttribute("total", total);
			request.setAttribute("stuTableList", stuTableList);
			request.getRequestDispatcher("/teacher/teacher_score_manage.jsp").forward(request,
					response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

@WebServlet("/ScoreModify")
public class ScoreModifyServlet extends HttpServlet {

@WebServlet("/BatchOutServlet")
public class BatchOutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		
		Integer mode = Integer.valueOf(request.getParameter("mode"));
		HSSFWorkbook workbook=null;
		String createExcelname = "";
		switch (mode) {
		case 1:
			workbook=(HSSFWorkbook) StuInfoExcelService.getAllByDatabase();
			createExcelname = "tb_student.xls";
			break;
		case 2:
			workbook=(HSSFWorkbook) QuestionExcelService.getAllByDatabase();
			createExcelname = "tb_question.xls";
			break;
		case 3:
			workbook=(HSSFWorkbook) ScoreExcleService.getAllByDatabase();
			createExcelname = "tb_student_score.xls";
			break;
		default:
			break;
		}
		
		
		String dir = request.getSession().getServletContext().getRealPath("/images");
		File fileLocation = new File(dir);
		if (!fileLocation.exists()) {
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8"); // 编码处理
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		
		String executeMode = request.getParameter("executeMode");
		int mode = Integer.parseInt(executeMode); // 转化整形
		System.out.println(mode);
		
		String number=request.getParameter("number");
		String type="";
		String title="";
		String score="";
		String key="";
		String select = "";
		String fileName ="";
		if (mode!=2) {	//如果不用执行删除,就执行
			type=request.getParameter("type");
			title=request.getParameter("title");
			score=request.getParameter("score");
			key=request.getParameter("key");
			if (type.equals("单选题")||type.equals("多选题")) {
				String[] temp=request.getParameterValues("select");
				for (int i = 0; i < temp.length; i++) {
					select+=temp[i];
					if (i!=temp.length-1) {
						select+="@";
					}
				}
			}else {
				select=request.getParameter("select");
			}
			System.out.print(select);
			Part part = request.getPart("img"); //题目配图
			fileName = part.getSubmittedFileName(); // 获取part对象所携带的文件名称
			if (fileName.length() > 0) { //如果用户上传了题目配图
				String savePath = getServletContext().getRealPath("/images");
				part.write(savePath + "/" + fileName);//上传图片到发布目录下

				try {//try能保证文件流被正确关闭
					//图片的原始路径(tomcat的发布目录下)

	}

}

/**
 * 分页显示学生信息表的学生信息
 * 默认每页10条
 */
@WebServlet("/ShowStuPage")
public class StudentShowByPageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		// 如果没有参数传递过来,初定每页显示10条记录,显示第一页。
		// 然后把这两个参数压到request容器传到前台页面。request容器是前台页面收到即销毁的容器。
		int cpage = 0;
		int per = 10;
		if (request.getParameter("cpage") != null) {
			cpage = Integer.parseInt(request.getParameter("cpage"));
		}
		request.setAttribute("cpage", cpage);
		if (request.getParameter("per") != null) {
			per = Integer.parseInt(request.getParameter("per"));
		}
		request.setAttribute("per", per);
		
		try {
			// 数据库的查询结果有多少条记录
			DatabassAccessObject db=new DatabassAccessObject();
			ResultSet rsTotal = db
					.query("select count(*) as total from student");
			if (rsTotal.next()) {
				// 求出总页数压到request容器传递给前台页面。
				request.setAttribute("totalPage", 1
						+ (rsTotal.getInt("total") - 1) / per);
			}
			// 新建一个动态数组用来存放查询结果
			ArrayList<StudentInfoBean> stuBeanAllList = new ArrayList<StudentInfoBean>();
			tihao=0;	//题号从0开始
			HttpSession session = request.getSession();
			session.setAttribute("examTime", examTime);
			session.setAttribute("ques", listALL);	//把试卷数组保存到Session对象
			//重定向到试卷页面,供考生作答
			response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	/**
	 * 负责每种题型、指定数量的随机抽题
	 * @param list	题目链表(存储了一类题型的行号)
	 * @param rs	数据表结果集
	 * @param count 抽取指定的题目数量
	 * @return		返回一个(存储了count条指定类型的题目)数组
	 */
	public ArrayList<QuestionBean> randomQue(LinkedList<Integer> list,ResultSet rs,int count) {
		int m = -1;
		int index = -1;
		ArrayList<QuestionBean> listA = new ArrayList<QuestionBean>();
		while (list.size() > 0&&count>0) {
			count--;
			m = (int) (Math.random() * list.size());
			index = list.get(m);
			System.out.println(index);
			list.remove(m);
			tihao++;
			try {
				rs.absolute(index);
				QuestionBean queBean = new QuestionBean();
				queBean.setQ_id(String.valueOf(tihao));
				queBean.setQ_type(rs.getString(2));
				queBean.setQ_title(rs.getString(3));
				String selectString = rs.getString(4);
				System.out.println(rs.getString(2));
				queBean.setQ_score(rs.getString(5));
				queBean.setQ_key(rs.getString(6));
				queBean.setQ_img(rs.getString(7));
				if (selectString != null) {
	/**
	 * 如果账号密码匹配失败,就重定向回登录页面
	 * @param request	请求对象
	 * @param response	响应对象
	 * @param ID		用户ID
	 * @param backNews	登录失败的原因
	 */
	private void fail(HttpServletRequest request, HttpServletResponse response, String ID, String backNews) {
		response.setContentType("text/html;charset=UTF-8");
		try {
			PrintWriter out = response.getWriter();
			out.println("<script language=javascript>alert('" + backNews + "');window.location='"
					+ request.getContextPath() + "/login.jsp';</script>");
		} catch (IOException exp) {
		}

	}

}

/**
 * 分页显示题库表的题目信息
 * 默认每页10条
 */
@WebServlet("/ShowQuePage")
public class QuestionShowByPageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 如果没有参数传递过来,初定每页显示10条记录,显示第一页。

请添加图片描述

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值