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 :

Comment faire une variable de session correctement


Sujet :

Servlets/JSP Java

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment faire une variable de session correctement
    Bonjour en
    effet j'ai essaye pleins de possibilites dans mon servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	String log=null ;
    session.setAttribute(log,req.getParameter("login"));
    System.out.println("\nAcess granted proceed to menu log = "+log);
    il me dit : java.lang.IllegalArgumentException: setAttribute: name parameter cannot be null

    si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	String log=null ;
    session.setAttribute(log,req.getParameter("login"));
    System.out.println("\nAcess granted proceed to menu log = "+log);
    resultat :
    java.lang.ThreadDeath

    J'ai essaye pleins de possibilites a chaque fois j'ai une erreur ou bien
    log me retourne null comment faire ?

    Comment correctement creer une variable de session ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Est-ce que tu comprends le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalArgumentException: setAttribute: name parameter cannot be null
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Je crois que ce que veux dire Laurent.B ... c'est que l'ajout d'une variable de session nécessite deux paramètres :

    1/ le nom de la variable en session
    2/ la valeur de cette variable

    Or, tu demandes à enregistrer dans la variable NULL ... une autre variable ... ca te semble cohérent ? Donc en gros, il faut absolument mettre un String NON NULL pour la nom de la variable...
    See you, space cowboy... and if you're satisfied, click on

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Non, ce n'est pas ce que je veux dire justement
    C'est encore plus bête que ça.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    oups pardon, j'avais corrigé en trouvant l'info avec un "!google session servlet" ...
    See you, space cowboy... and if you're satisfied, click on

  6. #6
    Battosaiii
    Invité(e)
    Par défaut
    mais log=null n'est pas mon probloeme majeur !!! Bien sur que j'ai essaye auparavant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		HttpSession session = req.getSession(true);
    	    		String log ;
    	    		session.setAttribute("log",req.getParameter("login"));
    	    		System.out.println("\nlog = "+log);
    mais voila ce que j'obtiens :
    java.lang.Error: Unresolved compilation problem:
    The local variable log may not have been initialized

    Identification.doPost(Identification.java:21)
    il me demande de l'initialiser c'est ce que je fais cre nom d'un chien !!!

  7. #7
    Battosaiii
    Invité(e)
    Par défaut
    le probleme quand j'initialise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	String log="vide" ;
    	    		session.setAttribute("log",req.getParameter("login"));
    	    		System.out.println("\nlog = "+log);
    log n'est pas mis a jour car :

    log = vide

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 77
    Points
    77
    Par défaut
    Salut,
    Je crois que tu es un peu perdu.

    Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String log="vide" ;
    session.setAttribute("log",req.getParameter("login"));
    le NOM de ton attribut de session est "log" car en faisant cela, tu passes à la méthode une chaîne de caractères anonyme qui contient la valeur "log".

    Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String log="vide" ;
    session.setAttribute(log,req.getParameter("login"));

    le NOM de ton attribut de session est "vide" car en faisant cela, tu passes à la méthode une chaîne de caractères dont le nom est log et dont la valeur est "vide".

    Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String log="log" ;
    session.setAttribute(log,req.getParameter("login"));
    Tu crées un attribut de session dont le nom est log.

  9. #9
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Tu assimiles String log à "log" ou quoi?

    Ton paramètre de request "login" n'est pas forcément présent, donc il faut t'assurer qu'il ne soit pas nul avant d'essayer de le mettre en session !
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  10. #10
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Et pour compléter ce qui a été dit jusqu'a présent ... quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String log="login";
    session.setAttribute(log,req.getparameter("login"));
    Ta variable Log ne sera pas mis à jour ... par contre, tu récupereras la valeur par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.getAttribute(log);
    See you, space cowboy... and if you're satisfied, click on

  11. #11
    Battosaiii
    Invité(e)
    Par défaut
    Je sais pas si c'est l'effet du cafe mais j'ai la tete qui tourne a lire vos messages.

    Tout ce que je veux c'est de faire de log une variable de session avec comme contenu getParameter("login").

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HttpSession session = req.getSession(true);
    	    		String log="vide" ;
    	    		session.setAttribute(log,req.getParameter("login"));
    je voudrais mettre dans log ,variable de session, le contenu de req.getParameter("login"). Ce que je sais c'est que log n'est pas mis a jour apres l'appel de la methode setAttribute car il affiche :
    vide
    au lieu du contenu de getparameter cad (albert nom du login).
    si je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	String log=req.getParameter("login") ;
    	    		session.setAttribute(log,req.getParameter("login"));
    	    		System.out.println("\nlog = "+log);
    il affiche bien le contenu mais si la request est null -> probleme !


    Une question : quand je fais setattribute d'une variable quand je fais un get de cet attribut dans n'importe lequel de mes servlet je suis garantie de la recuperer ?

    Oulalala 'ai un mal de crane, faut que j'arrete le cafe . Ca me donne envie de dormir[/code]

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 77
    Points
    77
    Par défaut
    En faisant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ttpSession session = req.getSession(true);
    String log="vide" ;
    session.setAttribute(log,req.getParameter("login"));
    tu crées une variable de session qui s'appelle "vide" et qui a pour valeur req.getParameter("login")

    Le premier argument de la méthode setAttribute représente le NOM de l'attribut.
    Le second argument de la méthode setAttribute représente la VALEUR de l'attribut.

    Ce qui veut dire que, pour récupérer la valeur de l'attribut, tu dois faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.getAttribute("vide");

  13. #13
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Salut,
    Si j'ai bien compris ce que tu veux faire, c'est récuperer une variable qui est un parametre de ta "request" et la mettre en session, ça ressemblerait à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String log=req.getparameter("login"); 
    session.setAttribute("login", log);
    Tu te serais pas un peu enmelé les crayons
    Ou alors ta question est pôs claire...
    Ou alors c'est moi qui suis pas encore bien réveillé

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 38
    Points : 43
    Points
    43
    Par défaut
    Je suis d'acc avec MicroPuce : je crois que c ce que tu voulais faire.
    Ou en une ligne :

    session.setAttribute("login", req.getparameter("login"));

    Tu passes comme cela le parametre login de scope request en scope session.

    Ciao
    Have a nice day

  15. #15
    Battosaiii
    Invité(e)
    Par défaut
    merci de tous vos messages, ca marche bien grace a vous !

Discussions similaires

  1. Comment créer une variable de session
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/11/2009, 14h39
  2. Comment faire une variable pour tout le programme ?
    Par Nico128 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/06/2007, 08h48
  3. Réponses: 2
    Dernier message: 23/05/2007, 13h42
  4. Réponses: 3
    Dernier message: 18/08/2006, 12h05
  5. [WebForms]Comment utiliser une variable de session depuis JavaScript ?
    Par ThunderBib dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 05/05/2006, 14h01

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