как получить результат запроса один за другим в jsp и mysql - PullRequest
0 голосов
/ 24 апреля 2010

Я пытаюсь реализовать его в качестве онлайн-экзамена Mock в 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 Ответ

2 голосов
/ 25 апреля 2010

Извините, если я звучу грубо, но в данном коде слишком много неправильного, и я не знаю, с чего начать с ответа / исправления. Основные понятия совершенно не поняты. Вам нужно переписать все с самого начала.

Я предлагаю вам пока оставить этот проект полностью в стороне и начать с этих руководств . Как только у вас появится хорошее понимание того, как все это должно работать / соответствовать друг другу, перезапустите разработку с нуля на основе того, что вы узнали из этих уроков.

Кстати: используйте страницу JSP для просмотра. Используйте класс Servlet для управления, предварительной обработки и постобработки модели / вида. Используйте вводы HTML / кнопки в JSP для отправки параметров запроса. Используйте эти параметры запроса в сервлете, чтобы выполнить соответствующие действия. Используйте объект модели (класс Javabean) для хранения данных. Используйте класс DAO для взаимодействия с базой данных и получения / возврата объектов модели. Используйте taglibs как JSTL в JSP для управления потоком страниц. Используйте EL в JSP для доступа к данным модели.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...