2009-12-09 3 views
0

Мне нужно написать сайт с JSP и сервлетами, который отображает анкету и получает результат пользователя.JSP pass Variable

Я уже написал объект вопроса, вопросник (случайный список вопросов) и библиотеку вопросов.

Теперь мой сервлет генерирует экземпляр вопросника и отображает вопросы. Моя проблема в том, что я не знаю, как получить результаты. Я могу получить ответы, но AFAIK каждый раз, когда я загружаю Servlet, он будет генерировать новый вопросник, и ответы будут бесполезны. Итак, как я могу передать ответы на правильный вопросник. Или как передать анкету на новый сервлет?

Большое спасибо.

Edit: Вот код для анкеты:

public abstract Question getNextQuestion(); 

public abstract void setResult(ArrayList<Boolean> answers); 

public abstract int[] getResult(); 

В основном я создаю анкету, и получить через getNextQuestion() следующий вопрос до тех пор, пока не больше. то пользователь нажмет кнопку отправки, и мне нужно будет прочитать ответы и передать их на вопросник (setResult() для фактического вопроса). Когда вопросов больше нет, я воспользуюсь результатом retResult().

Надеюсь, это поможет. Я не могу дать какой-либо JSP-код, так как у меня нет JSP, написанного еще

+0

Некоторые примеры кода были бы полезны при понимании вашего вопроса. –

ответ

1

Поскольку вы создаете вопросник для каждого пользователя, когда он входит на сайт, вы можете заставить сервлет генерировать вопросник и записать его в сеанс под именем «lastGeneratedQuestionnaire».

Когда ответы будут отправлены, сервлет будет извлекать вопросник из сеанса под этим именем. Если его там нет, я перенаправляю пользователя на страницу, на которой создается новый вопросник.

Кроме того, страница, которая генерирует новый вопросник, должна переопределять объект в сеансе каждый раз, когда он генерирует случайный вопросник.

Недостаток этого ... использовать HttpSession для хранения объекта между запросами.

1

Любые данные, которые должны выдержать несколько запросов, должны войти в сеанс (см. request.getSession()).

0

Обычно у вас будет объект формы (на странице JSP), который будет связан с вашим вопросником.

<html:form action="/servlets/MyQuestionaireServlet method="post"> 
    <h3>Question 1: What is your name</h3> 
    <html:text name="question1" /> 
    <input type="submit" name="submitBtn" value="Submit"/> 
</form> 

Что вам нужно сделать для того, чтобы отправить данные в сервлет, так что его можно сохранить/записать, что вам нужно, чтобы обеспечить кнопку отправки внутри формы. Это отправит все данные в форме в сервлет.

Хорошая точка, без распорок, вы все равно можете выполнить стандартный метод почтового отправления в форме и получить значения в сервлете, указанном в действии. Вам не нужны стойки для выполнения действия над формой.

+1

ОП не сказал, что использует Struts. – BalusC

+0

Нет, я не использую stuts. это на самом деле первый раз, когда я использую jsp;) – Dimitri