[Session Context] session non transmise
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 :
Code:
1 2 3 4
| HttpSession session = request.getSession();
session.setAttribute("message","mon message");
RequestDispatcher dispatcher = request.getRequestDispatcher("/second");
dispatcher.forward(request,response); |
Et ma deuxième servlet contient le code suivant :
Code:
1 2 3 4
| HttpSession httpSession = request.getSession();
if ( httpSession.isNew()) {
// trace message nouvelle session
} |
Dans les traces, je vois bien l'appel de ma première servlet, et l'appel
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.