location response-header? Browser-Back-Button "deaktivieren"

Status
Nicht offen für weitere Antworten.

JanHH

Top Contributor
Hallo,

hab das schonmal andernorts gefragt, wurde da auf das, was im Titel steht, hingewiesen.

Es geht darum, dass der back-Button des browsers quasi "deaktiviert" werden soll (der Surfer soll nicht zur vorherigen Seite zurückgelangen können). Vorschlag: Zwischen Seite A und Seite B eine leere Seite zwischenschalten, die nichts weiter tut, als wieder nach B weiterzuleiten. Wenn man dann auf zurück klickt, wird man sofort wieder weitergeleitet. Wäre also die gewünschte Funktionalität.

Nur: Mit HTTP-EQUIV funktioniert es nicht. mit body onload=document.forms[0].submit (und natürlich einer Form in der Seite) funktioniert es, aber natürlich nur wenn javascript aktiviert ist.

Mir wurde da der location-Eintrag im response header vorgeschlagen. Sagt mir nun gar nichts. Was verbirgt sich dahinter, kann das funktionieren, und wie beeinflusse ich das vom Servlet aus?

Bin sonst auch für alternative Tipps, wie man das realisieren kann, dankbar.

Gruß+Danke
Jan
 
M

maki

Gast
Man könnte einmalige Tokens pro Request verwenden, dann merkt man schnell ob ein User den back Button benutzt hat.
Ansonsten könntest du mit einem JS Eventhandler auf den back Button reagieren und anstatt "Back" einfach nix machen.
 

JanHH

Top Contributor
Der Browser holt sich die Seite doch aus dem Cache.. auf dem Server kommt meistens gar kein Request an.

Es bringt auch nix, es zu "merken", es soll einfach nicht möglich sein..
 
M

maki

Gast
Es bringt auch nix, es zu "merken", es soll einfach nicht möglich sein..
Das geht aber nicht, willkommen im Web ;) Musst dich & deine Wünsche daran anpassen.
Ausser natürlich du nutzt den JS Eventhandler, aber ob der überall funktioniert?
 

JanHH

Top Contributor
Mir ist auch klar dass es "eigentlich" nicht geht. Aber es gibt genug Beispiele, wo es dann doch irgendwie hinbekommen wurde, dass Auftraggeber denken, es würde halt doch gehen (und es zu einer häufigen Standardanforderung machen). Ziemlich doof, aber so ist das halt. Glücklicherweise weiss ich, dass mein Kunde im Zweifel mit der body onLoad-Lösung zufrieden ist (weil er damit leben kann, das javascript eine Voraussetzung ist). Aber werde noch dem ServletResponst.sendRedirect eine Chance geben.
 
M

maki

Gast
Den sendRedirect halte ich persönlich für eine Schnappsidee ;)
Mit JSF wird das wohl nix.
 

JanHH

Top Contributor
Soll ja auch nicht, es handelt sich um ein stinknormales Servlet, fernab von jedem Webframework.
 

HLX

Top Contributor
Das hat mit der serverseitigen Technologie überhaupt nichts zu tun. Der Browser muss den Event Abfangen bevor die Kommunikation mit dem Server geschieht, egal ob da Servlets, JSP-Seiten oder PHP-Skripte laufen. Alles andere führt zu einem Neuladen der Seite - auch wenn du es schaffst wieder die vorherige Seite anzusteuern ist das ganze höchst fehleranfällig.

Wenn dein Auftraggeber so etwas irgendwo gesehen hat, war es mit ziemlicher Sicherheit JavaScript. Erkläre ihm das.

JS ist im Übrigen mittlerweile schon fast üblich geworden im Web.
 

JanHH

Top Contributor
Jo, klar.. Lösungen mit JS existieren, das krieg ich auch hin. War aber auf der Suche nach einer "allgemeinen", die das auch so kann. Aber die scheint es nicht zu geben.

Gibt es denn ein Event "der Benutzer hat auf den Back-Button geklickt", den man innerhalb der HTML-Seite mit JS abfangen kann, BEVOR der Browser aktiv wird und die alte Seite wieder anzeigt?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben