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 :

[JSP] back to basics


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Par défaut [JSP] back to basics
    bonjour,

    j'ai deja etudié un peu les servlets, et je me rappelle qu'il existe le contexte et les sessions; l'un persistant pour un client tout au long de sa connection, et l'autre créé coté serveur et partagé par tous les clients.
    Je travaille actuellement avec les JSP et je partage une connection a une base de données dans une session mais je ne sais pas comment authentifier et garder l'identité d'un utilisateur tout au long de sa navigation.
    Quelles astuces existe-t-il pour ce genre de probleme ?
    merci

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    mettre l'identité dans un bean avec comme attribut => session ??

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Par défaut
    pardon mais j'ai pas bien compris !

    par contre quelqu'un peut me dire quelle est la difference entre l'objet session et l'objet application pour les JSP ?

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Par défaut
    finalement j'ai bien compris que l'objet implicite 'application' chez JSP est un espace de stockage partagé par toutes les JSP chargées, et que l'objet 'session' est partagé par les JSP durant la session d'un utilisateur.
    Mon probleme finalement a changé: j'ai une application web avec une authentification d'utilisateur a la premiere page. je stocke l'identite de l'utilisateur connecté dans la session.
    Et la j'ai grave probleme car si une personne A se connecte, elle peut voir tout au long de sa navigation, l'identité de la personne connectée (en l'occurence A).
    Mais si une personne B se connecte, A peut voir que c'est B qui est connecté.
    Ca sous entend que les clients partagent leur session ???
    Mon application web est sur un serveur et les clients ont des PC differents, tous connectés au serveur par un switch.
    Quelqu'un pourrait-il m'eclairer ?

  5. #5
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Tu es sur de ton probleme. On dirait que dans ton cas, l'objet "utilisateur" est dans un object de type application, tout le monde a accès.

    Normalement Session est valable uniquement pour le browser du pc. Donc 2 pc = 2 browser = 2 session differentes.

    Peux tu mettre le code pour voir comment tu as fait. Merci

    PS: Désolé pour le premier message, j'me suis enflammé, j'ai cru que tu utilisés struts.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Par défaut
    Voila donc une partie de code où j'etablis la connection et apres je recupere le user connecté. J'ai créé une classe User.
    Donc la connection doit etre partagée par tout le monde et l'identité du User uniquement partagée entre les pages d'un browser.
    J'ai mis les 2 en session mais je sais tres bien que c'est faux pour l'instant !
    J'aurai du mettre la connection dans application et le User en session. Ceci dit, l'identité du user est partagée sur plusieurs PC ???

    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
    38
    39
    40
    41
    42
    User user;
    boolean connectionOK=false;	
    if(session.getAttribute("connection")==null)
    {
    	try
    	{
    		connection = toolClass.init(base, username, password, host);
           		connectionOK = true;
    	}
    	catch(ClassNotFoundException e)
    	{
          		out.println("<script language=\"JavaScript\">");
    		out.println("alert(\"Database driver not found. \");");
    		out.println("window.location.href=\"../index.jsp\";");
    		out.println("</script>");
    	}
            catch(SQLException e)
    	{
    		out.println("<script language=\"JavaScript\">");
    		out.println("alert(\"Error opening the db connection. \");");
    		out.println("window.location.href=\"../index.jsp\";");
    		out.println("</script>");
    	}
    }
     
    if(connectionOK)
    {
    	session.setAttribute("connection",connection);
    	user=toolClass.checkUser(st, request.getParameter("name"), request.getParameter("passwd"));
    	if(user.getNum()!=0)
    		session.setAttribute("user",user);
    	else
    	{
    		out.println("<script language=\"JavaScript\">");
    		out.println("alert(\"Wrong user !\");");
    		out.println("window.location.href=\"../index.jsp\";");
    		out.println("</script>");
    	}
    	connectionOK=false;
    }
    else
    	user=(User)session.getAttribute("user");

  7. #7
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Dans ton cas tu veux dire que si tu vas sur un pc, que tu te connectes sur ta webapp, et que tu vas sur la page en question il te dit que tu es déjà authentifié (que le user n'est pas vide)??

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Par défaut
    j'ai une page 'index' qui contient un formulaire.
    le formulaire soumis arrive sur une page 'home' qui initialise la connection et l'identification du user comme je l'ai montré dans le code.
    Ce que je veux expliquer, c'est que sur un PC A, je vais sur 'index', je m'identifie et j'arrive sur 'home'.
    Si je vais sur un PC B, je peux tres bien aller taper directement l'adresse de 'home' parce que je serai identifié comme le user identifié sur le PC A.
    Simplement que mon objet user qui doit etre partagé tout au long d'une session, est partagé sur tous les PC qui se connectent a mon application et chaque fois que quelqu'un se connecte, il ecrase le current User !!!
    Michel travaille sur l'appli, et si Ginette se connecte sur un autre PC, Michelö s'apercoit qu'il est connecté en tant que Ginette.
    Voila mon probleme.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  2. Back to basics : compréhension de code pour déclaration de Double
    Par MatMeuh dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 27/03/2012, 14h23
  3. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  4. Simuler le bouton "back" du navigateur dans une page jsp
    Par ramanov dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/04/2008, 10h02

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