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 :

Session - jsp et applet = différente session?


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Points : 94
    Points
    94
    Par défaut Session - jsp et applet = différente session?
    Bonjour, j'ai une web application qui est construite comme suit:

    Accueil.jsp: contient des infos + un applet de connexion.

    AppletConnexion: permet de se connecter sur le site et communique avec une servlet vérifiant le nom d'utilisateur et le mot de passe.

    ServletVérification: elle vérifie si l'utilisateur est déja connecté ou alors vérifie les paramètres de login venant de l'applet et si c'est correct => Session.setAttribute("Connexion","OK").

    Mon problème est que j'aimerai au démarrage de page Accueil faire la vérification si l'user est loggé. Mais l'applet me retourne bien que l'user est loggé mais lorsque je fait dans la jsp : session.getAttribute("Connexion") celui-)ci est à null???

    Voici les codes

    Accueil.jsp:
    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
    <div id="appletConnexion">
    			<applet code="appletconnection.ConnexionApplet" archive="MovieCityApplet.jar,Protocol.jar" height="69" width="268" />
            </div>
     
            <p id="spacer"></p>
     
        </div>
     
     
        <% if(session.getAttribute("connexion")!=null)
            {
        %>
      <div id="caddy">
        <h1>Caddy</h1>
      </div>
      <% } %>
    ConnexionApplet.java:
    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
     String linkServlet = "http://localhost:8084/MovieCityServlet/FormAuthorizeServlet";
                URL URLServlet = new URL(linkServlet);
                URLConnection connect = URLServlet.openConnection();
                connect.setUseCaches(false);
                connect.setDefaultUseCaches(false);
                connect.setRequestProperty("Content-Type", "application/octet-stream");
                connect.setDoOutput(true);
                connect.setDoInput(true);
                OutputStream os = connect.getOutputStream();
     
                ObjectOutputStream oos = new ObjectOutputStream(os);
                oos.writeObject(object);
                oos.flush();
     
     
                InputStream is = connect.getInputStream();
                ObjectInputStream ois = new ObjectInputStream(is);
                ACK ack = (ACK) ois.readObject();
                System.out.println("ack: "+ack.getCode()+" - "+ack.getMessage());
     
                switch(ack.getCode())
                {
                    case 0:
                        getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/IncorrectPwd.html"), "_parent");
                        break;
                    case 1:
                        getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/"), "_parent");
                        break;
                    case 20:
                        drawConnected(ack.getMessage());
                        break;
                    /*case 21:
                        jLabel1.setText("notAlreadyConnected");
                        break;*/
                    case 22:
                        getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/"), "_parent");
                        break;
                }
                oos.close();
                os.close();
                ois.close();
                is.close();
    Servlet de vérification:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    response.setContentType("application/octet-stream");
            OutputStream os = response.getOutputStream();
            ObjectInputStream ois = new ObjectInputStream(request.getInputStream());
            ObjectOutputStream oos = new ObjectOutputStream(os);
     
            try
            {
                Object received = ois.readObject();
     
                if(received.getClass().getSimpleName().equals("Login"))
                {
                    Login login = (Login) received;
                    switch(checkLogin(login))
                    {
                        case 0:
                            oos.writeObject(new ACK(0, "Not Connected"));
                            oos.flush();
                            break;
                        case 1:
                            ACK ack = new ACK(1, "Connected");
                            HttpSession session = request.getSession(true);
                            session.setAttribute("connexion", ack);
                            session.setAttribute("username", login.getUser());
                            Calendar currentDate = Calendar.getInstance();
                            SimpleDateFormat formatter=  new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss");
                            String dateNow = formatter.format(currentDate.getTime());
                            session.setAttribute("derSess", dateNow);
                            oos.writeObject(ack);
                            oos.flush();
                            break;
                    }
     
                    oos.close();
                    ois.close();
                    return;
                }
     
                if(received.getClass().getSimpleName().equals("String"))
                {
                    if(((String)received).equals("checkConnected"))
                    {
                        HttpSession session = request.getSession(true);
                        if(session.getAttribute("connexion")==null)
                        {
                            oos.writeObject(new ACK(21, "NotAlreadyConnected"));
                            oos.flush();
                            oos.close();
                            ois.close();
                        }
                        else
                        {
                            oos.writeObject(new ACK(20, (String)session.getAttribute("username")+"-"+(String)session.getAttribute("derSess")));
                            oos.flush();
                            oos.close();
                            ois.close();
                        }
                        return;
                    }
     
                     if(((String)received).equals("disconnect"))
                    {
                         HttpSession session = request.getSession(false);
                         session.invalidate();
                         oos.writeObject(new ACK(22, "Disconnected"));
                         oos.flush();
                         oos.close();
                         ois.close();
                    }
                }
    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
     public int checkLogin(Login login) throws SQLException
        {
            connectionMySQL conn = new connectionMySQL("InpresDB", "mysqlAdmin", "password");
     
            ResultSet rs = conn.select("SELECT * FROM LOGIN WHERE Login='" + login.getUser() + "' AND Password='" + login.getPwd()+"'");
     
            if(rs.next())
            {
                rs.close();
                conn.close();
                return 1;
            }
            else
            {
                rs.close();
                conn.close();
                return 0;
            }
        }
    merci d'avance

    Julien

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Je me demande si ceci n'est pas un exercice car une personne et ce il y a très peut de temps à poser excatement le même problème que toi.

    Applet s'execute coté client, la jsp s'execute coté serveur il ne peut donc y avoir de session partagée.

    Je t'invite donc à recherche le post en question qui te donnera une piste/solution ^^

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Points : 94
    Points
    94
    Par défaut
    Salut, j'ai effectivement trouvé un thread qui correspondait à ma question (Ô milles excuses pour ne pas avoir utilisé la recherche ) et oui c'est le même exercice ^^


    Bien à vous et merci encore

    Julien

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

Discussions similaires

  1. jsp -> applet -> servlet (session)
    Par manutudescends dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 18/09/2006, 19h16
  2. Réponses: 3
    Dernier message: 24/07/2006, 17h11
  3. Réponses: 8
    Dernier message: 13/07/2006, 11h04
  4. [JSP][Struts]Moniteur de sessions
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/03/2006, 18h13
  5. [Session]jsp session
    Par youss dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 23/05/2005, 12h48

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