2016-04-26 14 views
0

Ich habe ein Problem mit der Behandlung von Sitzungen zwischen Java-Servlet, JSP-Seite und Struts-Aktion. Das Java-Servlet fügt einige Parameter zu der Sitzung hinzu, wenn eine Anforderung empfangen wird, und sendRedirect zu einer bestimmten Seite1.jsp. Auf Seite1 habe ich eine URL zu Struts Action wie strutsAction.do. Wenn die StrutsAction-Anfrage entgegengenommen wird, enthält die Sitzung keine Attribute, die ich im Java-Servlet hinzugefügt habe. Wenn Sie auf die Seite klicken, die von dieser Aktion zurückgegeben wird, wird die Sitzung des Java-Servlets nicht aktualisiert, aber sie haben dieselbe SessionId. Also, nach session.getMaxInactiveInterval() von Servlet Session Pass bekomme ich sessionDestroyed() Ereignis, auch wenn ich Aktionen auf der Seite von StrutsAction zurückgegeben. enter image description here Wie behebt man dieses Problem?Refreshing Sitzung von anderen Servlet

Antwort

0

Bei SendRedirect rufen alte Anfrage- und Antwortobjekt verloren, weil es als neue Anforderung behandelt wird,

Sie sollten den folgenden Code versuchen

RequestDispatcher rd = servletContext.getRequestDispatcher("/pathToResource"); 
    rd.forward(request, response); 

becuase wenn es im Rahmen requestdispather Objekt aufgerufen wird passieren wir Anfrage- und Antwortobjekt, so dass unser altes Anfrageobjekt auf der neuen Ressource vorhanden ist, die unsere Anfrage bearbeiten wird.