基于Servlet+MySQL实现简单的题库网页

it2023-06-19  75

基于Servlet+MySQL实现简单的题库网页

基本思想Servlet代码do类查询数据库提示

基本思想

通过doGet方法创建出网页,提交表单时调用doPost方法进行处理数据,从数据库中查找出所有的问题,再查找出所有问题的正确答案和表单传入的数据进行比对,正确加分数;

Servlet代码

package com.controller; import com.Do.UserDo; import com.entry.Question; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class QuestionServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double count = 0; request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter printWriter = response.getWriter(); //用于存放用户选择的答案 List<String> list = new ArrayList<>(); UserDo userDo = new UserDo(); //调用do类查询所有问题 List<Question> list1 = userDo.selectQuestion(); //循环获取浏览器发来的请求中每一个answer的value for (Question answers:list1){ String answer = request.getParameter("answer"+answers.getId()); list.add(answer); } //调用do类得到每一个问题的正确答案 List<String> trueAnswer = userDo.selectAnswer(); //获取迭代器 Iterator<String> selectIterator = list.iterator(); Iterator<String> answerIterator = trueAnswer.iterator(); //判断value值是否与答案相同 while (selectIterator.hasNext()&&answerIterator.hasNext()){ if (answerIterator.next().equals(selectIterator.next())){ count = count+10; //printWriter.print("答案正确"); }else { //printWriter.print("答案错误"); } } printWriter.print(count); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); int num = 1; PrintWriter printWriter = response.getWriter(); UserDo userDo = new UserDo(); List<Question> list =null; list = userDo.selectQuestion(); printWriter.print("<form action=\"question\" method=\"post\">"); printWriter.print("<table>"); for (Question question:list){ String questions = question.getQuestion(); String answer1 = question.getAnswer1(); String answer2 = question.getAnswer2(); String answer3 = question.getAnswer3(); String answer4 = question.getAnswer4(); printWriter.print("<tr>"); printWriter.print("<td>"+num+"、"+questions+"</td>"); printWriter.print("</tr>"); printWriter.print("<tr>"); printWriter.print("<td>"); printWriter.print("<input type=\"radio\" name=\"answer"+question.getId()+"\" value=\""+answer1+"\">"+answer1); printWriter.print("<input type=\"radio\" name=\"answer"+question.getId()+"\" value=\""+answer2+"\">"+answer2); printWriter.print("<input type=\"radio\" name=\"answer"+question.getId()+"\" value=\""+answer3+"\">"+answer3); printWriter.print("<input type=\"radio\" name=\"answer"+question.getId()+"\" value=\""+answer4+"\">"+answer4); printWriter.print("</td>"); printWriter.print("</tr>"); num++; } printWriter.print("<tr>"); printWriter.print("<td><input type=\"submit\" value=\"提交\">"); printWriter.print("<input type=\"reset\" value=\"重新填写\"></td>"); printWriter.print("</tr>"); printWriter.print("</table>"); printWriter.print("</form>"); } }

do类查询数据库

/** * 查询所有问题 * @return 问题列表 */ public List<Question> selectQuestion(){ List<Question> list = new ArrayList(); Jdbc jdbc = new Jdbc(); jdbc.GetConnection(); PreparedStatement preparedStatement = null; ResultSet resultSet = null; String sql = "select * from question"; preparedStatement = jdbc.prepareStatement(sql); try { resultSet = preparedStatement.executeQuery(); while (resultSet.next()){ Question question = new Question(); question.setId(resultSet.getInt(1)); question.setQuestion(resultSet.getString(2)); question.setAnswer1(resultSet.getString(3)); question.setAnswer2(resultSet.getString(4)); question.setAnswer3(resultSet.getString(5)); question.setAnswer4(resultSet.getString(6)); list.add(question); } } catch (SQLException throwables) { throwables.printStackTrace(); }finally { jdbc.Close(); } return list; } /** * 查询问题的正确答案 * @return 答案 */ public List<String> selectAnswer(){ List<String> list = new ArrayList<>(); String answer; Jdbc jdbc = new Jdbc(); jdbc.GetConnection(); PreparedStatement preparedStatement = null; ResultSet resultSet = null; String sql = "SELECT answer.answer FROM question join answer on question.question_id = answer.question_id"; preparedStatement = jdbc.prepareStatement(sql); try { resultSet = preparedStatement.executeQuery(); while (resultSet.next()){ answer = resultSet.getString(1); list.add(answer); } } catch (SQLException throwables) { throwables.printStackTrace(); } return list; }

提示

Java连接数据库的封装类获取方式: jdbc连接数据库.

最新回复(0)