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 :

servlet - decoupage d'une chaine de caracteres


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Femme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 138
    Points
    138
    Par défaut servlet - decoupage d'une chaine de caracteres
    mon problème c'est que j'ai recopié cette fonction qui marche tellement bien dans mon servlet et ça donne l'erreur en dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     import java.util.StringTokenizer;
     
    public class decoupchaine {
     public static void main(String[] args) {
    String bl="usr;local;java;";
        StringTokenizer st =  new StringTokenizer(bl, ";");
        while (st.hasMoreTokens()) {
          System.out.println(st.nextToken());
        }
      }
     
    }
    mon servlet:
    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
     
     
    package com.mine.web;
    import com.mine.model.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
     //import java.util.StringTokenizer;
     
    public class CoffeeSelect extends HttpServlet {
     
        @Override
      public void doPost( HttpServletRequest request,
                          HttpServletResponse response)
                          throws IOException, ServletException {
    //bl devient ici dciR
    String dciR = request.getParameter("dciR ");
    String[] dciR1=null;       
    Integer i=0;
     
        StringTokenizer st = new StringTokenizer(dciR, ";");
        while (st.hasMoreTokens()) {
          dciR1[i]=st.nextToken();
          i++;
        }
        request.setAttribute("dciR", dciR );
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        view.forward(request, response);
      }
    }

    erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    java.lang.NullPointerException
    	java.util.StringTokenizer.<init>(StringTokenizer.java:182)
    	java.util.StringTokenizer.<init>(StringTokenizer.java:204)
    	com.example.web.CoffeeSelect.doPost(CoffeeSelect.java:45)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

    resultat.jsp(celle qui reçoit les données de la servlet):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      String[] dci= (String[]) request.getAttribute("dciR");
        for (int i=0 ; i < dci.length ; i++)
                    System.out.println (dci[i]);
    Une idée? merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Vérifie que dciR est différent de NULL avant d'essayer de le découper.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    C'est pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("dciR")
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("dciR ")  // Espace en trop ??
    ??


    Ton problème de valeur NULL doit venir de là

  4. #4
    Membre habitué
    Femme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 138
    Points
    138
    Par défaut
    je l'ai corriG et ma chaine n est pas vide et pourtant l'erreur est toujours la:

    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
    package com.mine.web;
    import com.mine.model.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
     //import java.util.StringTokenizer;
     
    public class CoffeeSelect extends HttpServlet {
     
        @Override
      public void doPost( HttpServletRequest request,
                          HttpServletResponse response)
                          throws IOException, ServletException {
    //bl devient ici dciR
    String dciR = request.getParameter("dciR");//ici j'ai enleV l'espace
    String[] dciR1=null;       
    Integer i=0;
     
        StringTokenizer st = new StringTokenizer(dciR, ";");
        while (st.hasMoreTokens()) {
          dciR1[i]=st.nextToken();
          i++;
        }
        request.setAttribute("dciR", dciR1 ); //ici j'ai chanG dciR en dciR1
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        view.forward(request, response);
      }
    }

    erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.lang.NullPointerException
    	com.example.web.CoffeeSelect.doPost(CoffeeSelect.java:47)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    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
     
    package com.mine.web;
    import com.mine.model.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
     //import java.util.StringTokenizer;
     
    public class CoffeeSelect extends HttpServlet {
     
        @Override
      public void doPost( HttpServletRequest request,
                          HttpServletResponse response)
                          throws IOException, ServletException {
    //bl devient ici dciR
    String dciR = request.getParameter("dciR");//ici j'ai enleV l'espace
    String[] dciR1=null;       
    Integer i=0;
     
        if ( dciR==null )
        {
           System.out.println("Si si c'est bien null !");
        }
        else
        {
        StringTokenizer st = new StringTokenizer(dciR, ";");
        while (st.hasMoreTokens()) {
          dciR1[i]=st.nextToken();
          i++;
        }
        request.setAttribute("dciR", dciR1 ); //ici j'ai chanG dciR en dciR1
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        view.forward(request, response);
        }
      }
    }

    Tu as pas une autre fonction de ta classe ? Car l'erreur est en ligne 49.

  6. #6
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Oui, d'autant plus que l'exception a elle aussi changé de ligne.
    Ca corrige donc bien le problème, il y en a un autre juste derrière par contre

    edit: bon je triche, on va dire que ta ligne 49 est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dciR1[i]=st.nextToken();
    Elle plante parce que tu n'a pas initialisé dciR1, tu l'as simplement mis à null.
    Et tu vas avoir un problème pour l'initialiser vu que tu ne sais pas combien de tokens tu vas avoir avant d'avoir fini ta boucle.

    Je te propose donc sopit d'utiliser un ArrayList à la place d'un tableau pour dciR1 ou encore plus simplement le code suivant pour remplacer ton histoire de StringTokenizer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] dciR1=dciR.split(";");

  7. #7
    Membre habitué
    Femme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 138
    Points
    138
    Par défaut toujours l'erreur!
    servlet:
    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
    package com.mine.web;
    import com.mine.model.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
     //import java.util.StringTokenizer;
     
    public class CoffeeSelect extends HttpServlet {
     
        @Override
      public void doPost( HttpServletRequest request,
                          HttpServletResponse response)
                          throws IOException, ServletException {
    //bl devient ici dciR
    String dciR = request.getParameter("dciR");//ici j'ai enleV l'espace
    String[] dciR1=null;       
    Integer i=0;
     
        StringTokenizer st = new StringTokenizer(dciR, ";");
        while (st.hasMoreTokens()) {
          dciR1[i]=st.nextToken(); //L'ERREUR(java.lang.NullPointerException) INDIQUE CETTE LIGNE
          i++;
        }
        request.setAttribute("dciR", dciR1 ); //ici j'ai chanG dciR en dciR1
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        view.forward(request, response);
      }
    }
    je verifie avec javascript que c'est pas null avent de poster, et deja essayer aussi if(dciR==null), mais ca indique toujours l'erreur a la meme ligne.(dciR1[i]=st.nextToken(); )

  8. #8
    Membre habitué
    Femme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 138
    Points
    138
    Par défaut Erreur dans le costructeur:
    c'etait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] dciR1=new String[20];
    au lieu de

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

Discussions similaires

  1. Decoupage d'une Chaine de caractere
    Par padrinoba dans le forum Général Java
    Réponses: 1
    Dernier message: 21/07/2010, 13h54
  2. [Débutant] decoupage d'une chaine de caracteres avec la commande strread
    Par jeune informatique dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/05/2010, 13h49
  3. decoupage d'une chaine de caractere
    Par julinho99 dans le forum Débuter
    Réponses: 13
    Dernier message: 24/09/2008, 15h23
  4. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  5. Controler une chaine de caracteres ou d'entiers?
    Par Le druide dans le forum C
    Réponses: 6
    Dernier message: 25/09/2003, 08h48

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