Bonsoir,
J'ai actuellement un gros soucis, sur ma servlet de connexion je créé une session, le soucis est que je n'arrive pas à la récupérée sur une autre servlet, il veut me créé une nouvelle session même en lui disant false dans son paramètre d'entrée.


Voici le code de deux servlets :


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
 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
        try {
 
            // Déclaration des variables de transmission
            HttpSession session = request.getSession();
            ArrayList<Object> reception = new ArrayList<Object>();
            boolean renvoi;
 
            // Reception des données client
            ObjectInputStream entree = new ObjectInputStream(request.getInputStream());
 
            reception = (ArrayList<Object>) entree.readObject();
 
            int numcompte = Integer.parseInt((String)reception.get(0));
            String codesecret = (String)reception.get(1);               
 
            // Fermeture de la connexion entrante
            entree.close();
 
            // Gestion EJB et Sessions      
            CompteManagerRemote compteManager = EJB_Locator.getLocator().getCompteManager();
            DistributeurManagerRemote distribManager = EJB_Locator.getLocator().getDistributeurManager();
 
            Compte compte = compteManager.compte(numcompte);
            Distributeur distrib = distribManager.distributeur(Session_Manage.Id_distributeur);
 
            if(compte != null && distrib != null) 
            {
                session.setAttribute("compte", compte);
                session.setAttribute("client", compte.getClient());
                session.setAttribute("distributeur", distrib);
 
                // Vérification du code secret
                renvoi = Session_Manage.client.getCodesecret().equalsIgnoreCase((String)codesecret);
            }
            else
                renvoi = false;
 
            // Renvoi des données au client
            ObjectOutputStream sortie = new ObjectOutputStream(response.getOutputStream());
 
            sortie.writeObject(renvoi);
 
            // Nettoyage des variables
            reception.clear();
 
            // Fermeture de la connexion sortant
            sortie.close();
 
        } catch (ClassNotFoundException e) {
            System.out.println(e);
        }
 
    }

Et voici l'autre 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
28
29
30
31
32
33
34
35
36
37
38
 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    try {
 
        // Déclaration des variables de transmission
        HttpSession session = request.getSession(false);
        Compte compte = (Compte)request.getAttribute("compte");
        ArrayList<Object> renvoi = new ArrayList<Object>();
 
        // Reception des données client         
        ObjectInputStream entree = new ObjectInputStream(request.getInputStream());
 
        // Fermeture de la connexion entrante
        entree.close();
 
        // Préparation du renvoi des opérations
        for(Operation op : Session_Manage.compte.getOperation())
        {
            renvoi.add(op.getIntitule()+" | "+op.getMontant()+"€");
        }
 
        // Renvoi des données au client
        ObjectOutputStream sortie = new ObjectOutputStream(response.getOutputStream());
 
        sortie.writeObject(renvoi);
 
        // Nettoyage des variables
        renvoi.clear();
 
        // Fermeture de la connexion sortant
        sortie.close();
 
    } catch (Exception e) {
        System.out.println(e);
    }
 
}

Pour les variables Session_Manage.compte etc. se sont des variables static en attendant que mes sessions fonctionnent.


Merci d'avance