Session entre les servlets
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:
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:
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