Zum Inhalt springen

Struts Tomcat Session Timeout


Empfohlene Beiträge

Geschrieben

Hallo,

ich muss in einer Tomcat/Struts Web Appl. einen automatischen Redirect auf eine .jsp einbauen nachdem die HttpSession abgelaufen ist. Der Timeout ist ja im web.xml configuriert. In der App. gibt es die Klasse HttpSessionListener die die Methoden sessionCreated und sessionDestroyed enthält.Hab gesehen das die Methode sessionDestroyed automatisch bei Session Timeout ausgeführt wird. Meine Idee war jetzt das ich innerhalb diese Methode ein Redirect auf die .jsp mache aber ich bekomme immer eine Meldung "ignore redirect".

Kann mir jemand sagen wie man das am besten lösen kann. Wie gesagt, das ganze muss automisch passieren, also ohne das der User was macht.

Vielen Dank

Jens

Geschrieben

Hi,

du kannst zum Beispiel mit einem Filter überprüfen ob eine Sessionvariable existiert und falls nicht mit response.sendRedirect(...) auf eine entsprechende Seite redirecten.

Gruß Jaraz

Geschrieben

ok, aber wird der Filter automatisch ausgeführt? Wie mach ich das? Bin neu in Java&Struts.

Danke

Jens

Geschrieben

Ok, aber das ganze soll ohne Request vom Client geschehen. So wie z.B bei Google, du logst dich ein machst aber nichts weiter, nach einer gewissen Zeit gehst Du auf die Seite zurück und du siehst das du auf eine andere Seite weitergeleitet wurdest. Bei meinem Internetbanking ist das übrigends auch so. Wie macht man sowas?

Danke

Jens

Geschrieben

Hallo,

also ich würde das mit JavaScript machen, d.h. einen Timer laufen lassen, der immer "angeschmissen" wird, wenn die Seite geladen wird .. .sind dann z.B. zwei Minuten (= z.B. Session-Timeout-Zeit) abgelaufen (der Kunde hat keine Aktionen ausgeführt, da ja sonst die Seite neu geladen wird und der Timer neu gestartet), sendet die Seite automatisch einen Request (mit den dementsprechenden Parameter/n) an das Servlet oder Filter oder whatsoever ... dann einfach einen Redirect auf die gewünschte Seite.

Anders kann ich mir das jetzt gar nicht vorstellen, dass das technisch realisierbar wäre.

Gruß

  • 1 Jahr später...
Geschrieben

ich würde bei dem ServletFilter bleiben da dies die eleganteste Lösung ist, da du das hier an einer zentralen Stelle implementieren kannst. Ein ServletFilter wird vor jedem Request aufgerufen (in dem bereich in dem er zuständig ist). Zusätzlich könntest du vielleicht in einer kleinen JSP eine JavaScript funktion einbauen die einfach die Seite neu läd. Diese kannst du dann dort einbinden wo du sie brauchst.

Wenn du nur mit JavaScript arbeitest hast du das problem, dass du bei einem wirklichen ServerTimeout z.B. nach 30mins ins leere läufst. Ich kenne mich mit Struts nicht so aus aber mit JSF und dort ist es so, dass wenn die Session ungültig ist und du versucht eine weitere JSF-Anfrage zu starten du garantiert einen Fehler bekommen wirst, da alle nötigen Beans gelöscht wurden... ich denke das is bei struts ähnlich. Du solltest dich vielleicht auch noch erkundigen ob struts sowas wie einen Filter bereits zur verfügung hat. Bei JSF gibt es z.B. den PhasenListener...

Des weiteren geht ein Filter auch wenn JS deaktiviert ist ;)

Geschrieben (bearbeitet)
ich würde bei dem ServletFilter bleiben da dies die eleganteste Lösung ist, da du das hier an einer zentralen Stelle implementieren kannst. Ein ServletFilter wird vor jedem Request aufgerufen (in dem bereich in dem er zuständig ist). Zusätzlich könntest du vielleicht in einer kleinen JSP eine JavaScript funktion einbauen die einfach die Seite neu läd. Diese kannst du dann dort einbinden wo du sie brauchst.

Wenn du nur mit JavaScript arbeitest hast du das problem, dass du bei einem wirklichen ServerTimeout z.B. nach 30mins ins leere läufst. Ich kenne mich mit Struts nicht so aus aber mit JSF und dort ist es so, dass wenn die Session ungültig ist und du versucht eine weitere JSF-Anfrage zu starten du garantiert einen Fehler bekommen wirst, da alle nötigen Beans gelöscht wurden... ich denke das is bei struts ähnlich. Du solltest dich vielleicht auch noch erkundigen ob struts sowas wie einen Filter bereits zur verfügung hat. Bei JSF gibt es z.B. den PhasenListener...

Des weiteren geht ein Filter auch wenn JS deaktiviert ist ;)

Hallo,

der Thread ist zwar schon uralt aber der Threadersteller hatte das Problem, dass er Zitat einen automatischen Redirect wünscht, wenn die Session abgelaufen ist ohne dass der User agiert, und das (automatisch) geht nur mit JavaScript. Das Handling auf dem Server würde ich auch in einen Filter bauen.

Gruß

Bearbeitet von mOSSpOWER

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...