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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.