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 : les paramètres


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut Servlet : les paramètres
    Bonjour tout le monde,

    J'ai un URL http://10.10.20.20:8080/ACCES?para1=...a2&para3=data3

    Le dernier paramètre est optionnel. Je voudrais faire du traitement différemment selon sa présence. J'ai le code ci-dessous :

    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
     
    String p1= req.getParameter("para1");
    String p2 = req.getParameter("para2");
    String p3 = req.getParameter("para3");
     
    if(type.equals("type1"))
    {
            methode1();
    }
    else if(type.equals("type2"))
    {
            methode(2);
    }else if(type==null)
    {
          methode3();
                    }
    Ca marche bien avec les deux premiers cas, mais quand le troisième paramètre est absent http://10.10.20.20:8080/ACCES?para1=data1&para2=data2 J'ai une exception java.lang.NullPointerException

    Comment je pourrai faire mon traitement quand il n'y a que deux paramètres ?

    Merci à toutes et tous.

    Renarde @Nantes

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    On ne vois pas tous le code, mais je suppose que l'objet type est null dans le troisième cas, pour ce là, un conseil quand tu utilise equals vaut mieux faire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if("type1".equals(type))
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(type.equals("type1"))

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Merci pour ta reponse. En fait je me suis mal exprimée : dans mon code, le type devrait être mon 3ième paramètre "p3". Et quand l'url ne contient que deux paramètres, p3 est null mais la ligne "if(p3==null)" me donne l'erreur java.lang.NullPointerException.

    Je peux faire "type1".equals(p3)" pour les premiers deux cas, mais le 3ième ne marche pas...

    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
     
    String p1= req.getParameter("para1");
    String p2 = req.getParameter("para2");
    String p3 = req.getParameter("para3");
     
    if(p3.equals("type1"))
    {
            methode1();
    }
    else if(p3.equals("type2"))
    {
            methode2();
    }else if(p3==null)
    {
          methode3();
    }

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    vérifie la ligne de l'exception, si tu garde



    ne génère pas de NullPointerException donc le problème n'est pas là..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    vérifie la ligne de l'exception, si tu garde



    ne génère pas de NullPointerException donc le problème n'est pas là..

    Quand je fais http://10.10.20.20:8080/ACCES?para1=data1&para2=data2 dans mon log il a bien "p3=null", donc je ne comprends pas pourquoi "null==null" qui ne marche pas...

    Merci again !

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    tu dois faire un double test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if((p3!=null)&&(!p3.equals("")))
    {
          methode3();
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Citation Envoyé par link256 Voir le message
    tu dois faire un double test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if((p3!=null)&&(!p3.equals("")))
    {
          methode3();
    }
    Merci,

    Mais ce que je voulais c'est quand para3 n'apparait pas dans l'url, donc ma méthode3 s'applique plutôt quand p3 = null, non? Je ne comprends pas ce que tu as proposé et ça ne marche pas...

  8. #8
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Le code que je t'ai mis te permet d'éviter de tombe sur un nullPointerException
    et de contrôles les paramètres que ton application recoit.
    A utiliser pour tes 2 premiers test notament afin de voir si un objet n'est pas null avant de tester une de ses propriétés

    Pour ton problème inverse le test d'egalité

    par
    De plus ton algo est à l'envers commence par le teste de la nullité avant de savoir si type vaut "type1" ou "type2"

    Ce qui explique que ton test ne marche pas car l'erreur que tu as doit surement pointer sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(type.equals("type1")

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Super, ça marche !

    Je suis contente, merci à tous les deux

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par renarde Voir le message
    Quand je fais http://10.10.20.20:8080/ACCES?para1=data1&para2=data2 dans mon log il a bien "p3=null", donc je ne comprends pas pourquoi "null==null" qui ne marche pas...

    Merci again !

    Donne nous le code exacte, juste un conseil de bonne pratique
    faut toujours faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if("chaine".equals(variable)) {
     
    // jamais de NullPointerException, même lorsque variable==null 
    }
    Ensuite si tu fais un main de base pour tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(null == null);
    le résultat serait true et pas d'exception donc :

    String p1 = null;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(p1==null){
     
    }
    ne génère jamais de NullpointerException, peu etre l'exception est génère dans l'une des méthode.

    NB: Cette exception est simple à corriger, avec Eclipse, faut lire bien la trace de l'exception et la cause de l'exception, tu trouvera même un lien sur la ligne source de l'exception.

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Damned, j'hallucine

    C'est quoi ce "p3 == null" ou "null == p3" ?

    Il suffit de commencer les tests par p3 == null, comme ceci
    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
    String p1= req.getParameter("para1");
    String p2 = req.getParameter("para2");
    String p3 = req.getParameter("para3");
     
    if(p3==null)
    {
          methode3();
    }
    else if(p3.equals("type1"))
    {
            methode1();
    }
    else if(p3.equals("type2"))
    {
            methode2();
    }
    Dans le code d'origine
    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
     
    String p1= req.getParameter("para1");
    String p2 = req.getParameter("para2");
    String p3 = req.getParameter("para3");
     
    if(p3.equals("type1"))
    {
            methode1();
    }
    else if(p3.equals("type2"))
    {
            methode2();
    }
    else if(p3==null)
    {
          methode3();
    }
    Si p3 est null, on ne peut référencer la méthode equals d'où NullPointerException
    En traitant ce cas particulier en premier, l'algo doit passer...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Débutant] Récupérer les paramètres d'une routine
    Par nifty dans le forum Assembleur
    Réponses: 5
    Dernier message: 18/04/2005, 14h35
  2. [Débutant] Pb avec les paramètres dans lien dynamique
    Par hackwell69 dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/02/2005, 11h33
  3. Changer les paramètres régionaux
    Par STEF_1 dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2004, 15h39
  4. Problème avec les paramètres date BDE/ODBC Oracle/XP Pro
    Par Bloon dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 10h09
  5. Réponses: 4
    Dernier message: 04/07/2003, 19h13

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