基于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();
List
<Question> list1
= userDo
.selectQuestion();
for (Question answers
:list1
){
String answer
= request
.getParameter("answer"+answers
.getId());
list
.add(answer
);
}
List
<String> trueAnswer
= userDo
.selectAnswer();
Iterator
<String> selectIterator
= list
.iterator();
Iterator
<String> answerIterator
= trueAnswer
.iterator();
while (selectIterator
.hasNext()&&answerIterator
.hasNext()){
if (answerIterator
.next().equals(selectIterator
.next())){
count
= count
+10;
}else {
}
}
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类查询数据库
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
;
}
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连接数据库.