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 :
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...
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>
Merci de votre aide.
Partager