Problème de session sur un exo
Bonjour, je viens demander votre aide car je débute sur les servlets et je n'arrive tout simplement pas a comprendre comment résoudre cet exercice. Merci pour votre aide.
L'énoncé de l'exo :
• Ecrire une application web qui fait la
somme de 10 entiers saisis
successivement chacun dans une page
HTML.
• Utiliser le champ HIDDEN pour stocker la
somme intermédiaire
Et voici ou j'en suis :
Le controleur principal :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| public class Controleur extends HttpServlet{
public void doGet (HttpServletRequest requete, HttpServletResponse reponse) throws IOException, ServletException{
reponse.setContentType("text/html");
PrintWriter out = reponse.getWriter();
String actionString = requete.getParameter("action");
int codeAction = Integer.parseInt(actionString);
HttpSession session = requete.getSession(true);
int result = 0;
int compteur = 0;
switch (codeAction){
case 1:{
while(compteur!=10){
String s = requete.getParameter("nombre");
int n = Integer.parseInt(s);
if(session.getAttribute("resultat")==null){
result=0;
}
else{
result = Integer.parseInt(session.getAttribute("resultat").toString());
}
if(session.getAttribute("compteur")==null){
compteur=0;
}
else{
compteur = Integer.parseInt(session.getAttribute("compteur").toString());
}
result += n;
compteur++;
session.setAttribute("resultat", result);
session.setAttribute("compteur", compteur);
RequestDispatcher disp = getServletContext().getRequestDispatcher("/index.jsp") ;
disp.forward( requete, reponse ) ;
}
RequestDispatcher disp = getServletContext().getRequestDispatcher("/vueResultat.jsp") ;
disp.forward( requete, reponse ) ;
break;
}
}
out.flush();
out.close();
}
} |
L'index.jsp qui est lié :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Entrainement</title>
</head>
<body>
<h2>Rentre un nombre</h2>
<form action = "controleur">
<input type = "HIDDEN" name = "action" value = "1" />
Nombre : <input type = "text" name = "nombre" value = "10" /><br>
<input type = "submit" value = "Valider" />
</form>
</body>
</html> |
Et la vueResultat.jsp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean id="resultat" scope="session" type="int" beanName="resultat" />
<%int n = resultat;%>
Le résultat est <%=n%>
</body>
</html> |
Mon problème réside dans le fait que le compteur et le résultat repartent à 0 à chaque fois que je valide. Bref, je merdouille avec les sessions je pense. J'ai aussi du mal a manier les beans...
Merci de votre aide.