J'essaie de mettre en place un servlet simple qui utilise une session HTTP dans
une jetée intégrée (7.3.0 V20110203) conteneur. Pour démarrer la jetée, j'utilise le code suivant: Le servlet acquiert une session avec p> et stocke certaines données dedans. À la demande suivante, cela obtient la session
Avec le code suivant: p> et là que la session est toujours nulle. p> Je n'ai trouvé aucune information sur
Internet sur ce problème particulier. J'ai aussi expérimenté
avec la définition d'un sessionManager ou de sessionIDManager, mais cela ne semblait pas
changer quoi que ce soit. Je soupçonne que je manque quelque chose à propos de sessionManager ou de SessionIDManager ou de SessionHandler ici, mais c'est juste une supposition sauvage. P> p>
3 Réponses :
Votre code fonctionne bien avec cette implémentation squelettique de basesservlet: de sorte que la session est probablement invalidée ailleurs dans votre code. p> SessionHandler CODE> peut aussi être défini sur l'explicitement à l'aide de la méthode
SetSessionHandler () Code> de
servleContexThandler code>. p> p>
La méthode httpServletResponse # réinitialiser () code> détruit une session nouvellement créée, donc une nouvelle est créée la prochaine fois et ainsi de suite. P>
Et pourquoi la réinitialisation serait-elle appelée?
//You need to setup SessionManager first. This worked for me. Server server = new Server(8031); ServletHandler handler = new ServletHandler(); server.setHandler(handler); HashSessionIdManager hashSessionIdManager = new HashSessionIdManager(); SessionHandler sessionHandler = new SessionHandler(); SessionManager sessionManager = new HashSessionManager(); sessionManager.setSessionIdManager(hashSessionIdManager); sessionHandler.setSessionManager(sessionManager); sessionHandler.setHandler(handler); sessionHandler.setServer(server); server.setSessionIdManager(hashSessionIdManager); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); context.addServlet("webservlet.IndexServlet", "/index"); context.addServlet("webservlet.HomeServlet", "/home"); context.addServlet("webservlet.CategoryServlet", "/category"); context.addServlet("webservlet.ProductServlet", "/product"); ...