J'essaie de transférer des objets d'une servlet à une autre via la
session http. Mais ma deuxième servlet ne trouve pas la session
créée ???
Le code de ma première servlet (simplifié des tests) comporte
les lignes suivantes :
Et ma deuxième servlet contient le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 HttpSession session = request.getSession(); session.setAttribute("message","mon message"); RequestDispatcher dispatcher = request.getRequestDispatcher("/second"); dispatcher.forward(request,response);
Dans les traces, je vois bien l'appel de ma première servlet, et l'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 HttpSession httpSession = request.getSession(); if ( httpSession.isNew()) { // trace message nouvelle session }
de ma seconde servlet. Donc, le fichier web.xml n'est pas en cause.
De plus, si, une fois mon test effectué, je lance la deuxième servlet
via le navigateur directement, elle voit bien la session, et le paramètre
initialisé !!!
Petite remarque, lorsque ma première servlet a fini d'appeler la seconde,
dans la barre d'adresse du navigateur, j'ai toujours le nom de ma
première servlet.
Bref, je ne sais plus où chercher. Je pense que la méthode :
dispatcher.forward ne transmet pas la session. J'ai même essayé en
passant le sessionId que je peux récupérer par la méthode encodeURL.
Help me if you can,
thanks a lot.
Partager