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 :

somme dans une servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut somme dans une servlet
    Je veux faire une servlet qui faire la somme de deux entiers voici le code
    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
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		String nombre1 = request.getParameter("nombre1");
    		String nombre2 = request.getParameter("nombre2");
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    		out.println("<html><head><title> mon servlet </title></head>");
    		out.println("<body> le résultat est </body>");
    		int nb1=Integer.parseInt(nombre1);
    		int nb2=Integer.parseInt(nombre2);
    		out.println("la somme de:"+nb1+"et de"+nb2+"est"+(nb1+nb2));
    		out.println("</body>");
    		out.println("</html>");
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
     
    }
    l'erreur affiché est java.lang.NumberFormatException: null

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu obtiens une NullPointerException parce que l'un des paramètres est manquant (ou les deux). Quelque soit la manière d'invoquer la servlet, il faudra de toute manière prendre en compte le fait qu'un paramètre pourra être manquant. Même si tu l'invoques depuis un formulaire html, pour lequel tu mets une validation, tu ne pourras empêcher l'appel par url directement, et c'est toujours mieux de traiter correctement les cas d'erreurs plutôt que de laisser une exception remonter.

    Par exemple :

    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
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		String nombre1 = request.getParameter("nombre1");
    		String nombre2 = request.getParameter("nombre2");
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    		out.println("<html><head><title> mon servlet </title></head>");
    		out.println("<body>");
                    try {
    		   int nb1=Integer.parseInt(nombre1);
    		   int nb2=Integer.parseInt(nombre2);
    		   out.println("la somme de:"+nb1+"et de"+nb2+"est"+(nb1+nb2));
                    }
                    catch(NumberFormatException e) {
    		   out.println("La somme ne peut pas être calculée parce qu'il faut saisir deux nombres.");
                    }
    		out.println("</body>");
    		out.println("</html>");
    	}
    Aussi, pense qu'on peux appeler la servlet par un post. Si le traitement est le même, tu peux simplement renvoyer le post sur le get :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request, response);
    	}

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    merci pour la réponse mais est ce que on peut créer une servlet qui fait la somme de deux entiers sans pourtant passer par un formulaire ou bien on doit doit faire un form en HTML et envoyer les données par la méthodes post et dans ce cas récupérer les données dans la servlet par la méthode doPost.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Une servlet est faite pour traiter une requête HTTP (get, post ou autre, peu importe). Ensuite, soit on passe des paramètres, soit le body a une syntaxe particulière (xml, json, peu importe). La source de l'appel n'a aucune importance, formulaire html, requête ajax, application desktop, fichier de commandes faisant un wget, peu importe. En bref, une servlet traite des entrées et produit un résultat en sortie.

Discussions similaires

  1. [applet]utilser des infos pour les traiter dans une servlet
    Par jeromejanson dans le forum Applets
    Réponses: 5
    Dernier message: 07/03/2010, 23h22
  2. [Session]Récupération d'une session dans une servlet
    Par frizby dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 18/11/2005, 17h02
  3. Sommes dans une requete d'un formulaire
    Par moto25 dans le forum Access
    Réponses: 7
    Dernier message: 14/11/2005, 18h46
  4. Somme dans une même ligne
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/10/2005, 11h10
  5. Somme dans une requete
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2004, 10h40

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