2009-12-09 5 views
0

Je dois écrire un site web avec JSP et Servlets qui affiche un questionnaire et obtient le résultat de l'utilisateur.JSP pass Variable

J'ai déjà écrit l'objet de la question, un questionnaire (liste aléatoire de questions) et la bibliothèque de questions.

Maintenant, ma servlet génère une instance du questionnaire et affiche les questions. Mon problème est que je ne sais pas comment obtenir les résultats. Je peux obtenir les réponses mais AFAIK chaque fois que je charge un servlet il génèrerait un nouveau questionnaire et les réponses seraient inutiles. Alors, comment puis-je passer les réponses au bon questionnaire. Ou comment puis-je passer le questionnaire à ma nouvelle servlet?

Merci beaucoup.

Edit: Voici le code pour le questionnaire:

public abstract Question getNextQuestion(); 

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

public abstract int[] getResult(); 

Fondamentalement, je crée un questionnaire et obtenir via getNextQuestion() la question suivante jusqu'à ce qu'il n'y ait plus. Ensuite, l'utilisateur cliquera sur le bouton Soumettre et je devrai lire les réponses et les passer au questionnaire (setResult() pour la question actuelle). Quand il n'y a plus de question, je vais utiliser retResult() pour le résultat.

Espérons que cela aide. Je ne peux pas donner de code JSP car je n'ai pas encore écrit de JSP

+0

Un exemple de code serait utile pour comprendre votre question. –

Répondre

1

Puisque vous créez un questionnaire par utilisateur lorsqu'il accède au site, vous pouvez faire en sorte que le servlet génère le questionnaire et l'enregistre dans la session sous un nom tel que "lastGeneratedQuestionnaire".

Lorsque les réponses sont soumises, cette servlet récupère le questionnaire de la session par ce nom. Si ce n'est pas le cas, je redirigerais l'utilisateur vers la page qui génère un nouveau questionnaire.

En outre, la page qui génère un nouveau questionnaire doit remplacer l'objet dans la session chaque fois qu'il génère un questionnaire aléatoire. En bref ... utilisez le HttpSession pour stocker l'objet entre les requêtes.

1

Toutes les données qui doivent survivre à plusieurs requêtes doivent être entrées dans la session (voir request.getSession()).

0

Normalement, vous aurez un objet de formulaire (sur la page JSP) qui sera associé à votre questionaire.

<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> 

Ce que vous devez faire pour envoyer les données au servlet afin qu'il puisse être stocké/enregistré est que vous devez fournir un bouton de soumission à l'intérieur de la forme. Cela enverra toutes les données dans le formulaire à la servlet.

Bon point, sans struts, vous pouvez toujours effectuer une méthode de publication standard sur le formulaire et récupérer les valeurs dans le servlet répertorié sous action. Vous n'avez pas besoin d'entretoises pour effectuer une action sur un formulaire.

+1

L'OP n'a pas dit qu'il utilisait Struts. – BalusC

+0

non je n'utilise pas de stuts. c'est en fait la première fois que j'utilise jsp;) – Dimitri