Veröffentlicht 20. Dezember 200618 j 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
20. Dezember 200618 j 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
20. Dezember 200618 j ok, aber wird der Filter automatisch ausgeführt? Wie mach ich das? Bin neu in Java&Struts. Danke Jens
20. Dezember 200618 j ok, aber wird der Filter automatisch ausgeführt?Das ist Sinn und Zweck des ganzen: http://wiki.java.net/bin/view/Javapedia/ServletFilter
22. Dezember 200618 j 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
23. Dezember 200618 j 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ß
15. Juli 200817 j 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
15. Juli 200817 j 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 15. Juli 200817 j von mOSSpOWER
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.