IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JAVA EE] TP Calculatrice


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 14
    Points
    14
    Par défaut [JAVA EE] TP Calculatrice
    Bonsoir a tous et merci d'avance.

    je suis dans l'impasse depuis plusieurs jour, je début dans la programmation et encore loin de maîtriser.

    je réalise actuellement le TP du cour sur java EE

    J'ai déjà réaliser me semble t'il 90% du projet mais je me retrouve bloquer a l'envoi de ma variable message sur calculatrice.jsp .

    Pour mon servlet j'ai fais ceci:

    package com.octest.servlets;

    Code Java : 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
    package com.octest.servlets;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
     
    @WebServlet("/CalcServlet")
    public class CalcServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
     
     
        public CalcServlet() {
            super();
     
        }
     
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response); 
        }
     
     
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    Calcul calcul = new Calcul(
                    Integer.parseInt(request.getParameter("operande1")),
                    request.getParameter("operateur"),
                    Integer.parseInt(request.getParameter("operande2")));
     
            request.setAttribute("calcul", calcul);
            this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
        }
     
    }

    Ensuite Pour ma .JSP

    Code JSP : 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
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Calculatrice</title>
        </head>
        <body>
     
     
            <p>
                 $[calcul.message]
            </p>
     
            <form method="post" action="">
                <input name ="operande1" type="number" size=3/>
                <select name="operateur" size="1">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="x">x</option>
                    <option value="/">/</option>
                </select>
                <input name ="operande2" type="number" size=3/>
                <input type="submit" value="=" />
            </form>
            <p>
     
            </p>
        </body>
    </html>

    J'ai aussi à réaliser un classe pour exécuter les calculs et l'affichage de la réponse.

    Code Java : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package com.octest.servlets;
     
    public class Calcul {
     
         int operande1 = 0;
         int operande2 = 0;
         int resultat;
         String operateur;
         String message;
         String message1;
         String message2;
     
        {
     
        if ( (operande1 == 0) && (operande2 == 0) ) {
            message1 = ("Veillez entrez une valeur");
            message = new String(message1); 
        }
        else {
             message2 = ("Bonjour, vous avez calculé" +  operande1 + operateur +  operande2 + " = "  + resultat);
     
             message = new String(message2); 
             }
        }
     
        public Calcul (int operande1, String operateur, int operande2) {
            this.operande1 = operande1;
            this.operateur = operateur;
            this.operande2 = operande2;
     
            if (this.operateur.equals("+")) {
                this.setResultat(this.operande1 + this.operande2);
            }
            else if (this.operateur.equals("-")) {
                this.setResultat(this.operande1 - this.operande2);
            }
            else if (this.operateur.equals("x")) {
                this.setResultat(this.operande1 * this.operande2);
            }
            else this.setResultat(this.operande1 / this.operande2);
        }
     
        public int getResultat() {
            return resultat;
        }
        public String getMessage() {
            return message;
            }
     
        public void setResultat(int resultat) {
            this.resultat = resultat;
        }
        public void setMessage(String message) {
            this.message = message;
        }
    }

    C'est sur cette page qu’apparaît m'as seul erreur qui me dis "The value of the local variable is not used."

    Je vous joint aussi mon index.html et mon web.xml car je ne suis toujours pas sur de moi et il est possible que le problème vienne de la

    index.html

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Calculatrice</title>
        </head>
     
        <body>
     
        </body>
    </html>
    Ainsi que mon web.xml

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
      <servlet>
        <servlet-name>CalcServlet</servlet-name>
        <servlet-class>com.octest.servlets.CalcServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>CalcServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>

    Et pour finir une capture d’écran de la hiérarchie de mes dossier ainsi que l’aperçu de la compilation du programe et les erreurs.

    Nom : menu.PNG
Affichages : 2818
Taille : 13,8 Ko
    Nom : HTML.PNG
Affichages : 2804
Taille : 7,1 Ko
    Nom : ERREUR2.PNG
Affichages : 2813
Taille : 29,4 Ko

    Comme vous pouvez le remarquer ma variable message n'est pas envoyer a la jsp , lorsque je revois des information dans mes formulaire la page ce réactualise sans modification par contre , lorsque j'envoi sans information l'erreur suivante sur mon Servlet CalcServlet ligne 29 revienne et m'indique que les information ne communique pas entre les différents page enfin je dis ça mais as mon niveau de novice c'est comme si je disais rien mdr.
    Y a t'il une facon d'inclure la classe dans la ?
    Bref comme vous l’aurait compris cela dépasse un peux mes compétence pour le moment et je suis sur presque sur que l'erreur vas me sauter au yeux une fois le doigt dessus.
    je vous remercie encore pour votre attention et vous souhaite une bonne continuation dans l'attente d'une solution.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 14
    Points
    14
    Par défaut Modification probable
    je me suis dis que j'utilisais trop de variables dans ma condition if dans ma classe calcul et l'ai simplifiée, sans changement et sans être sûr de son efficacité, du coup peut-être que cette forme est plus probante.

    Classe java calcul.java

    Code Java : 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
    47
    48
    49
    50
    51
    public class Calcul {
     
    	int operande1 = 0;
    	int operande2 = 0;
    	int resultat;
    	String operateur;
    	String message;
     
    	{
     
    		if ((operande1 == 0) && (operande2 == 0)) {
    			 message = ("Veillez entrez une valeur");
     
    		} else {
    			message = ("Bonjour, vous avez calculé" + operande1 + operateur + operande2 + " = " + resultat);
     
    		}
     
    	}
     
    	public Calcul(int operande1, String operateur, int operande2) {
    		this.operande1 = operande1;
    		this.operateur = operateur;
    		this.operande2 = operande2;
     
    		if (this.operateur.equals("+")) {
    			this.setResultat(this.operande1 + this.operande2);
    		} else if (this.operateur.equals("-")) {
    			this.setResultat(this.operande1 - this.operande2);
    		} else if (this.operateur.equals("x")) {
    			this.setResultat(this.operande1 * this.operande2);
    		} else
    			this.setResultat(this.operande1 / this.operande2);
    	}
     
    	public int getResultat() {
    		return resultat;
    	}
     
    	public String getMessage() {
    		return message;
    	}
     
    	public void setResultat(int resultat) {
    		this.resultat = resultat;
    	}
     
    	public void setMessage(String message) {
    		this.message = message;
    	}
    }

  3. #3
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut,
    dans la classe CalcServlet,

    modifié ceci:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    String operande1 = request.getParameter("operande1");
                    String operande2 = request.getParameter("operande2");
                    operande1 = "".equals(operande1.trim()) ? "0" : operande1;
                    operande2 = "".equals(operande2.trim()) ? "0" : operande2; 
                    Calcul calcul = new Calcul(
                    Integer.parseInt(operande1,
                    request.getParameter("operateur"),
                    Integer.parseInt(operande2));
     
            request.setAttribute("calcul", calcul);
            this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
        }

    Eric

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 14
    Points
    14
    Par défaut réponse jeffray03
    Merci pour l'intervention,
    Mais la solution n'est toujours pas là.

    j'ai essayé ton bout de code mais il m'indique une erreur.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    String operande1 = request.getParameter("operande1");
                    String operande2 = request.getParameter("operande2");
                    operande1 = "".equals(operande1.trim()) ? "0" : operande1;
                    operande2 = "".equals(operande2.trim()) ? "0" : operande2; 
                    Calcul calcul = new Calcul(
                    Integer.parseInt(operande1,                           // probleme avec interger a cause de la parenthese manquante 
                    request.getParameter("operateur"),
                    Integer.parseInt(operande2));                        // de meme parenthese manquante
     
            request.setAttribute("calcul", calcul);
            this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
        }

    Je l'ai corrigé ainsi :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String operande1 = request.getParameter("operande1");
            String operande2 = request.getParameter("operande2");
            operande1 = "".equals(operande1.trim()) ? "0" : operande1;    // erreur lors de l'envoi du formulaire.
            operande2 = "".equals(operande2.trim()) ? "0" : operande2; 
            Calcul calcul = new Calcul(
                    Integer.parseInt(request.getParameter("operande1")),
                    request.getParameter("operateur"),
                    Integer.parseInt(request.getParameter("operande2")));
     
    request.setAttribute("calcul", calcul);
    this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);}
     
    }

    Maintenant le nom de ma variable n’apparaît sur la page html générée mais lors de l’envoi j'ai toujours une erreur a la ligne 27 du servlet qui correspond à la ligne où j'ai ajouté un commentaire.

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut,
    il faudra, voir si a ce moment la, elle n´est pas null.

    dans ce cas , tu fais une condition:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(operand1) == null )
      operand1 = "0";
     
    if(operand2) == null )
      operand2 = "0";

    et dans le fichier jsp remplacer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p>
                 $[calcul.message]
            </p>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p>
                 ${calcul.message}
            </p>
    en passant peux-tu nous afficher l´erreur?

    Eric

  6. #6
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,

    voici :
    calculatrice.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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Calculatrice</title>
        </head>
        <body>
     
     
            <p>
                 ${calcul.message}
            </p>
     
            <form method="post" action="CalcServlet">
                <input name ="operande1" type="number" size=3/>
                <select name="operateur" size="1">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="x">x</option>
                    <option value="/">/</option>
                </select>
                <input name ="operande2" type="number" size=3/>
                <input type="submit" value="=" />
            </form>
            <p>
     
            </p>
        </body>
    </html>
    CalcServlet.java:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	    	 String operande1 = request.getParameter("operande1");
                 String operande2 = request.getParameter("operande2");
                 operande1 = "".equals(operande1.trim()) ? "0" : operande1;
                 operande2 = "".equals(operande2.trim()) ? "0" : operande2; 
                 Calcul calcul = new Calcul(
                 Integer.parseInt(operande1),
                 request.getParameter("operateur"),
                 Integer.parseInt(operande2));
    	        request.setAttribute("calcul", calcul);
    	        this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
    	    }

    Calcul.java:

    Code Java : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    public class Calcul {
     
        int operande1 = 0;
        int operande2 = 0;
        int resultat;
        String operateur;
        String message;
        String message1;
        String message2;
     
       {
     
       if ( (operande1 == 0) && (operande2 == 0) ) {
           message1 = ("Veillez entrez une valeur");
           message = new String(message1); 
       }
       else {
            message2 = ("Bonjour, vous avez calculé" +  operande1 + operateur +  operande2 + " = "  + resultat);
     
            message = new String(message2); 
            }
       }
     
       public Calcul (int operande1, String operateur, int operande2) {
           this.operande1 = operande1;
           this.operateur = operateur;
           this.operande2 = operande2;
     
           if (this.operateur.equals("+")) {
               this.setResultat(this.operande1 + this.operande2);
           }
           else if (this.operateur.equals("-")) {
               this.setResultat(this.operande1 - this.operande2);
           }
           else if (this.operateur.equals("x")) {
               this.setResultat(this.operande1 * this.operande2);
           }
           else this.setResultat(this.operande1 / this.operande2);
     
           if ( (operande1 == 0) && (operande2 == 0) ) {
               message1 = ("Veillez entrez une valeur");
               message = new String(message1); 
           }
           else {
                message2 = ("Bonjour, vous avez calculé" +  operande1 + operateur +  operande2 + " = "  + resultat);
     
                message = new String(message2); 
                }
       }
     
       public int getResultat() {
           return resultat;
       }
       public String getMessage() {
           return message;
           }
     
       public void setResultat(int resultat) {
           this.resultat = resultat;
       }
       public void setMessage(String message) {
           this.message = message;
       }
    }

    Eric

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 11
    Points : 14
    Points
    14
    Par défaut Remerciement
    Merci de votre réactivité et du partage de vos connaissance.
    J'avais finalement recommencer du début pour finir sur une voie un peux différente, mais je suis revenu corriger les erreurs de celui ci.
    je vous remercie du soutient et vous remercie de de cette super aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une Calculatrice Java
    Par popy67 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 26/01/2009, 14h35
  2. interface en java - calculatrice
    Par mirinda dans le forum Débuter
    Réponses: 7
    Dernier message: 13/12/2008, 17h56
  3. Probleme calculatrice java
    Par Marie.B dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 17/11/2008, 11h48
  4. calculatrice en java
    Par rafikindia dans le forum Général Java
    Réponses: 19
    Dernier message: 11/04/2008, 10h45
  5. Création d'une calculatrice en Java
    Par angelka dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 05/12/2007, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo