Verhindern Sie, dass HTML- und JSP-Seiten zwischengespeichert und erneut vom Webserver abgerufen werden.

Verhindern Sie, dass HTML- und JSP-Seiten zwischengespeichert und erneut vom Webserver abgerufen werden.
Wenn der Benutzer sich abgemeldet hat und im Browser auf die Zurück-Schaltfläche geklickt wird, kann die Webanwendung die geschützte Seite nicht richtig schützen. Nachdem die Sitzung beendet wurde (der Benutzer sich abgemeldet hat), wird die geschützte JSP-Seite erneut im Browser angezeigt.
Wenn der Benutzer jedoch auf einen beliebigen Link auf der Rückkehrseite klickt, springt die Webanwendung zur Anmeldeseite und meldet, dass die Sitzung beendet wurde. Bitte melden Sie sich an.

Die Ursache des oben genannten Problems liegt darin, dass die meisten Browser über eine Zurück-Schaltfläche verfügen.

Wenn Sie auf die Zurück-Schaltfläche klicken, ruft der Browser die Seite standardmäßig nicht erneut vom Webserver ab, sondern lädt sie aus dem Browser-Cache.

Bei Java-basierten Webanwendungen besteht keine Einschränkung dieser Funktion, und bei Webanwendungen auf Basis von PHP, ASP und .NET besteht dieses Problem ebenfalls.
Glücklicherweise bieten die HTTP-Header „Expires“ und „Cache-Control“ Anwendungsservern einen Mechanismus zur Steuerung des Caching in Browsern und Proxyservern.

Der HTTP-Header „Expires“ teilt dem Proxyserver mit, wann seine zwischengespeicherte Seite abläuft.
Mit der neu definierten Header-Information Cache-Control in der HTTP1.1-Spezifikation kann der Browser angewiesen werden, keine Seiten im Cache zu speichern.

Wenn Sie auf die Zurück-Schaltfläche klicken, greift der Browser erneut auf den Server zu, um die Seite abzurufen.

Hier ist die grundlegende Methode zur Verwendung von Cache-Control:
1) no-cache: Erzwinge Cache, um neue Seiten vom Server zu erhalten
2) no-store: Unter keinen Umständen Seiten im Cache speichern

Um auf Nummer sicher zu gehen, fügen Sie am besten sowohl der HTML-Seite als auch der JSP einige Einstellungen hinzu

Fügen Sie für HTML-Seiten Folgendes hinzu:

Code kopieren
Der Code lautet wie folgt:

<meta HTTP-EQUIV="pragma" CONTENT="kein-cache">
<meta HTTP-EQUIV="Cache-Steuerung" CONTENT="kein Cache, muss erneut validiert werden">
<meta HTTP-EQUIV="läuft ab" CONTENT="0">

Fügen Sie für JSP-Seiten Folgendes hinzu:

Code kopieren
Der Code lautet wie folgt:

<%
response.setHeader("Cache-Steuerung","kein Speicher");
response.setHeader("Pragrma","kein Cache");
response.setDateHeader("Läuft ab",0);
%>

Das ist es.

<<:  Detaillierte Erläuterung der kostenlosen AWS-Serveranwendung und des Tutorials zur Einrichtung eines Netzwerkproxys

>>:  HTML/CSS (der erste Leitfaden, den Anfänger unbedingt lesen sollten)

Artikel empfehlen

Detaillierte Erklärung der Winkelinhaltsprojektion

Inhaltsverzeichnis Einzelne Inhaltsprojektion Mul...

Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung

Vorwort: In den vorherigen Artikeln wurde die Ver...

HTML-Endtag-Problem und W3C-Standard

Gemäß den Grundsätzen des W3C muss jedes Start-Tag...

Installieren Sie das komprimierte MySQL5.7-Paket schnell unter Windows

In diesem Artikel erfahren Sie, wie Sie das kompr...

mysql5.7.21.zip Installations-Tutorial

Der detaillierte Installationsprozess von mysql5....

Vue realisiert Click-Flip-Effekt

Verwenden Sie Vue, um einfach einen Click-Flip-Ef...

Detaillierte Analyse der Parameterdatei my.cnf von MySQL in Ubuntu

Vorwort Aufgrund meines MySQL-Verständnisses denk...

Detaillierte Erklärung des Rewrite-Moduls von Nginx

Das Umschreibmodul ist das Modul ngx_http_rewrite...

Analyse des Funktionsprinzips und des Implementierungsprozesses von Docker Hub

Ähnlich wie der von GitHub bereitgestellte Code-H...

Detaillierte Analyse der Unterschiede zwischen break und last in Nginx

Lassen Sie uns zunächst über den Unterschied spre...

Zusammenfassung der MySql-Import- und Exportmethoden mit mysqldump

Datenbankdaten exportieren: Öffnen Sie zuerst cmd...

Zusammenfassung der schnellen Spaltenaddition bei MySQL 8.0 Online DDL

Inhaltsverzeichnis Problembeschreibung Historisch...