[Java] So erhalten Sie die URL der Übergangsquelle

Einführung

Notieren Sie sich, wie Sie die URL der Übergangsquelle erhalten. Dieses Mal habe ich beim Erstellen der Anmeldefunktion, wenn die Anmeldung erfolgreich war, damit zu der Seite gewechselt, die vor der Anmeldung geöffnet war (die Seite, auf der die Anmeldeschaltfläche gedrückt wurde).

Der Fluss ist wie folgt.

Die Seite, die vor der Anmeldung geöffnet war (jsp) ↓ Login.java (** Ruft die URL der Seite ab, die vor der Anmeldung geöffnet war **, Übergang zum Anmeldeformular) ↓ login.jsp (Anmeldeformular) ↓ LoginCheck.java (Bestimmen Sie, ob Sie sich anmelden können. ** Extrahieren Sie die URL der Seite, die vor der Anmeldung geöffnet war. **) ↓ Seite, die vor der Anmeldung geöffnet war (kehren Sie zu dieser Seite zurück, wenn die Anmeldung erfolgreich ist)

Wie kommt man

Verwenden Sie abschließend die ** getHeader-Methode **, um den ** Referer ** des Anforderungsheaders abzurufen.

    //Rufen Sie die Übergangsquell-URL der Anforderungsheaderinformationen ab
    request.getHeader("REFERER");

Dieses Mal verwenden wir eine Sitzung, um die erfasste URL zu speichern. Wenn die Anmeldung erfolgreich ist, rufen wir sie ab und wechseln.

Login.java


   //Erfasst die Übergangsquell-URL der Anforderungsheaderinformationen und speichert sie in der Sitzung
   session.setAttribute("referer", request.getHeader("REFERER"));
   request.getRequestDispatcher("/login.jsp").forward(request, response);

LoginCheck.java


   //Extrahieren Sie nach erfolgreicher Anmeldung die URL der Übergangsquelle aus der Sitzung und dem Übergang
   String url = (String)session.getAttribute("referer");
   request.getRequestDispatcher(response.encodeURL(url).substring(29)).forward(request, response);

Wo es schwierig war

Als ich vor dem Anmelden versuchte, von LoginCheck.java auf die Seite zu wechseln, bekam ich einen 404-HTTP-Fehler und hatte Schwierigkeiten. Der Grund dafür ist, dass die vom Referer erhaltene URL die gesamte URL ist. Daher habe ich versucht, durch Angabe unnötiger Teile weiterzuleiten. Die Problemumgehung ist einfach. Verwenden Sie einfach ** Teilzeichenfolge, um die erforderlichen Teile auszuschneiden, und es ist in Ordnung **.

Zum Beispiel

http://localhost:8080/sample/top.jsp

Da Sie den Teil " http: // localhost: 8080 / sample "nicht benötigen, können Sie nur /top.jsp ausschneiden, indem Sie der URL ** Teilzeichenfolge (29) ** geben.

Recommended Posts

[Java] So erhalten Sie die URL der Übergangsquelle
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Java] So erhalten Sie die endgültige umgeleitete URL
[Java] So erhalten Sie den Maximalwert von HashMap
Quelle zum Abrufen der Umleitungsquell-URL in Java
[Java] So erhalten Sie das aktuelle Verzeichnis
So erhalten Sie das Datum mit Java
So ermitteln Sie die Länge einer Audiodatei mit Java
Wie komme ich zum heutigen Tag?
[Java] Memo zum Schreiben der Quelle
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
Wie schreibe ich Scala aus der Perspektive von Java
Stand April 2018 So installieren Sie Java 8 auf einem Mac
[Android] So erhalten Sie die Einstellungssprache des Terminals
[Rails] So erhalten Sie den Inhalt starker Parameter
[Swift] So erhalten Sie die Firebase-Dokument-ID
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
Verwendung von HttpClient (Get) von Java
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Eine nicht unterstützte Java-Version So beseitigen Sie Fehler
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
So leiten Sie den letzten Tag des Monats in Java ab
[jsoup] So erhalten Sie die gesamte Dokumentation
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
Holen Sie sich das Ergebnis von POST in Java
[Java] Verwendung der File-Klasse
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
[Java] Ermittelt den Tag eines bestimmten Tages
[java] Zusammenfassung des Umgangs mit char
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Verarbeitung × Java] Verwendung der Schleife
So bestimmen Sie die Anzahl der Parallelen
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
[Verarbeitung × Java] Verwendung der Klasse
So sortieren Sie eine Liste von SelectItems
Ausgabe des Buches "Einführung in Java"
[Verarbeitung × Java] Verwendung der Funktion
[Java] Verwendung der Calendar-Klasse
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
So erhöhen Sie den Wert von Map in einer Zeile in Java
So wechseln Sie die Anzeige des Header-Menüs für jede Übergangsseite
[Java] [ibatis] So erhalten Sie 1-zu-N-Beziehungsdatensätze mit List <Map <>>
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind