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 :

Gestion des sessions


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut Gestion des sessions
    Bonjour,

    Est-il possible de transmettre des données de la servlet vers ma page JSP ? j'essaie par les variables de session mais je reçois uniquement la valeur "null"

    login.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ page language = "java" contentType = "text/html" %>
    <%@ page errorPage = "error.jsp" %>
    <%@ page isErrorPage = "false" %>
    <html>
    <head>
      <title>Titre de ma page</title>
    </head>
    
    <body>
    Je souhaiterais affficher ici, la donnée version passée en tant que variable de session
    <%= session.getAttribute("version") %>
    </body>
    </html>
    la ligne <%= session.getAttribute("version") %> m'affiche "null"...

    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
    import java.io.IOException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    public class Validation extends HttpServlet {
    	static final long serialVersionUID = 0;
     
    	private String release;
     
    	public Validation() {
    		this.release = "2.0.0";
    	}
     
    	public void service(HttpServletRequest req, HttpServletResponse resp) {
    		HttpSession session;
     
    		session = req.getSession();
    		session.setAttribute("version", "2.0.0");
    		try {
    			resp.sendRedirect("login.jsp");
    		} catch(IOException ex) {
    			ex.printStackTrace();
    		}
    	}
    }
    merci d'avance pour votre aide

  2. #2
    Membre éclairé Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Par défaut
    Peut être que t'as pas mis :
    session.getAttribute("un_nom") !!!
    et met aprés : session.setAttribute("un_nom",10);

    je suis pas sûr mais teste comme même !!

  3. #3
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    Essaies : session = req.getSession(true)

    getSession(boolean create)
    Returns the current HttpSession associated with this request or, if if there is no current session and create is true, returns a new session.

  4. #4
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Bonsoir

    L'appel à req.getSession() équivaut à req.getSession(true).

    Par contre je pense que remplacer le sendRedirect par un RequestDispatcher.forward() serait pas mal.

    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
     
    import java.io.IOException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    public class Validation extends HttpServlet {
    	static final long serialVersionUID = 0;
     
    	private String release;
     
    	public Validation() {
    		this.release = "2.0.0";
    	}
     
    	public void service(HttpServletRequest req, HttpServletResponse resp) {
    		HttpSession session;
     
    		session = req.getSession();
    		session.setAttribute("version", "2.0.0");
    		try {
    			RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
    			rd.forward(req, resp);
    		} catch(IOException ex) {
    			ex.printStackTrace();
    		}
    	}
    }
    Doc de ServletRequest.getRequestDispatcher(String) pour le cas où tu aurais un problème de chemin.
    N'oublie pas d'ajouter l'import pour RequestDispatcher.

    yann

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Si ta sessions est nul cela te levera certainement une exception,
    il faut que tu crées soit une session dans une servlet qui te forward à ta page

    soit que tu instancies une nouvelles session dans ta page login

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    Citation Envoyé par adil_vpb
    Peut être que t'as pas mis :
    session.getAttribute("un_nom") !!!
    et met aprés : session.setAttribute("un_nom",10);

    je suis pas sûr mais teste comme même !!
    J'ai testé et ca ne fonctionne toujours pas, j'ai toujours session.getAttribute("version") qui me renvoie "null"

    Citation Envoyé par yann2
    Par contre je pense que remplacer le sendRedirect par un RequestDispatcher.forward() serait pas mal.
    J'ai aussi essayé cette solution et toujours le même résultat...

    Citation Envoyé par *alexandre*
    Si ta sessions est nul cela te levera certainement une exception,
    il faut que tu crées soit une session dans une servlet qui te forward à ta page

    soit que tu instancies une nouvelles session dans ta page login
    A priori ma session n'est pas null, ce qui est null c'est la variable version que j'essaie de "créer" dans ma servlet.
    Pour créer ma session dans ma servlet j'utilise la méthode req.getSession() qui normalement me renvoie si elle existe la session en cours, sinon crée une nouvelle session.
    Sinon, je ne peux pas créer une nouvelle session dans ma page login puisque j'ai besoin pour afficher ma page login d'informations provenant de la session

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    ...un petit complément d'information...

    Lorsque sous IE7, j'accéde au site avec l'url suivante :
    http://localhost/nomDuSite/ ma variable de session "version" vaut null

    par contre, lorsque j'accéde au site avec l'url suivante :
    http://localhost/nomDuSite/validation ma variable de session "version" est correctement valorisée :s

  8. #8
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Salut

    Ben il est là ton problème ...

    Dans le premier cas, tu ne passe pas par la Servlet. Dans le deuxième si. Enfin je pense que c'est ça. On peut voir le web.xml ?

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app id="WebApp">
    	<display-name>Validation 2.0.0</display-name>
    	<servlet>
    		<servlet-name>validation</servlet-name>
    		<servlet-class>com.xxx.servlet.Validation</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>validation</servlet-name>
    		<url-pattern>/validation</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>login.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    voilà mon fichier web.xml.

    Comment faire pour obliger le passage par la servlet ?

    merci pour vos réponses

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

Discussions similaires

  1. Gestion des sessions avec applet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/08/2006, 18h27
  2. [JSP] Gestion des sessions
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 28/06/2006, 10h44
  3. [Struts][JSP]gestion des session en JSP
    Par zola dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 16h23
  4. gestion des sessions
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 22h09
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25

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