如何在jsp和mysql中逐个获取结果查询

时间:2010-04-24 15:54:27

标签: jsp servlets jdbc

我正在尝试在JSP中实现在线模拟考试,但我有一个问题是逐一得到问题,它第一次得到了回应,并向我展示了第一个问题和答案,但是当我点击再次“下一步”,它仍然显示我的第一个问题,我认为点击“下一步”它会再次开始查询。请帮我。 这是我的豆子:

database.SQLSelectStatement sqlselect;
database.SQLSelectStatement sqlselect2;
static ResultSet questions;
static ResultSetMetaData rsm;
static ResultSet answers;
public void setConnection() throws SQLException {
    if (database.DatabaseManager.getInstance().connectionOK()) {
        sqlselect = new database.SQLSelectStatement("question", "question", "0");
        sqlselect2 = new database.SQLSelectStatement("answers", "question_id", "0");
        questions = sqlselect.executeWithNoCondition();
    }
}
public int i=0;
public String getQuestions() throws SQLException {
    String result = "";
    rsm = questions.getMetaData();
    for (int i = 0; i < rsm.getColumnCount(); i++) {
        result += "<th>" + rsm.getColumnName(i + 1) + "</th>";
    }
    if (!questions.isLast()) {
        questions.next();
        System.out.println(i+1);
        result += "<tr>";
        result += "<td>" + questions.getInt(1) + "</td>";
        result += "<td>" + questions.getString(2) + "</td>";
        result += "</tr>";
        result += "<tr>";
        sqlselect2.setValue(String.valueOf(questions.getInt(1)));
         answers = sqlselect2.Execute();

        while (answers.next()) {
            result += "<tr> <td colspan='2'><input type='radio' name='answer' value='" + answers.getString(2) + "'> " + answers.getString(2) + "</td></tr>";
        }
        result += "</tr>";
        answers.close();
    }
    return result;
}

这是HTML:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>JSP Page</h1>
        <jsp:useBean id="exam" class="exam.ExamQuestions"></jsp:useBean>

        <%
        exam.setConnection();                
        %>
        <form  method="post">
            <table >

                <%=exam.getQuestions()%>
            </table>
            <input type="submit" name="action" value="next"/>
        </form>
        <%
        String action = request.getParameter("action");
        if ("next".equals(action)) {
            out.println(request.getParameter("answer"));
        }

        %>
    </body>
</html>

1 个答案:

答案 0 :(得分:2)

很抱歉,如果我听起来很苛刻,但是给定的代码有太多错误,我不知道从哪里开始回答/纠正。基本概念完全被误解了。你基本上需要从头开始重写所有

我建议你暂时把这个项目放在一边,然后从those tutorials开始。一旦你理解了它应该如何工作/适合所有,然后根据你从这些教程中学到的东西重新开始从空白开始。

要点:使用JSP页面进行查看。使用Servlet类来控制,预处理和后处理模型/视图。使用JSP中的HTML输入/按钮发送请求参数。在servlet中使用这些请求参数来相应地执行操作。使用模型对象(Javabean类)来保存数据。使用DAO类与数据库交互并获取/返回模型对象。在JSP中使用像JSTL这样的taglib来控制页面流。在JSP中使用EL来访问模型数据。

祝你好运。