Heim > Java > javaLernprogramm > Was sind die Unterschiede zwischen der Java-Anforderungsweiterleitung und der Anforderungsumleitung?

Was sind die Unterschiede zwischen der Java-Anforderungsweiterleitung und der Anforderungsumleitung?

WBOY
Freigeben: 2023-05-05 15:46:15
nach vorne
1920 Leute haben es durchsucht

Vorwort

In Java Es gibt zwei Möglichkeiten, Sprünge zu implementieren: Anforderungsweiterleitung und Anforderungsumleitung, aber die beiden sind völlig unterschiedlich, daher werden wir sie heute besprechen.

Die Hauptunterschiede zwischen Anforderungsweiterleitung und Anforderungsumleitung umfassen die folgenden 5 Punkte:

  • Unterschiedliche Definitionen

  • Unterschiedliche Sprungparteien

  • Unterschiedliche Datenfreigabe

  • Die endgültige URL-Adresse ist unterschiedlich

  • Die Code-Implementierung ist anders

Als nächstes schauen wir uns das einzeln an.

1. Verschiedene Definitionen

Anfrageweiterleitung (Weiterleitung): Erfolgt innerhalb des Serverprogramms. Wenn der Server eine Anfrage vom Client empfängt, leitet er die Anfrage zunächst an die Zieladresse weiter und gibt dann das Ergebnis des Ziels zurück Adresse An den Kunden weitergeleitet. Der Kunde ist sich dessen nicht bewusst. Das ist so, als würde Zhang San (Kunde) Geld von Li Si (Server) leihen, und Li Si hat kein Geld, also geht Li Si zu Wang Wu, um Geld zu leihen, und leiht Zhang Geld San, Zhang San hat sich im gesamten Prozess nur einmal Geld geliehen, und Li Si hat den Rest erledigt. Dies ist eine Bitte um Weiterleitung. **Anfrageumleitung (Redirect): Anfrageumleitung bedeutet, dass der Server, nachdem er die Anfrage des Clients empfangen hat, einen temporären Antwortheader an den Client zurückgibt. Dieser temporäre Antwortheader zeichnet auf, dass der Client die Anfrage erneut senden muss (Redirect) URL-Adresse . Nachdem der Client die Adresse erhalten hat, sendet er die Anfrage an die neue Adresse. Dies ist eine Anfrageumleitung. **Das ist, als würde Zhang San (Kunde) Li Si (Server) bitten, sich Geld zu leihen, also sagt Li Si zu Zhang San: „Ich habe kein Geld, du gehst zu Wang Wu, um dir Geld zu leihen.“ Zhang San Ich ging erneut zu Wang Wus Haus und borgte mir Geld. Dies war eine Bitte um Weiterleitung.

2. Die anfragenden Parteien sind unterschiedlich

Aus den obigen Definitionen der Anforderungsweiterleitung und Anforderungsumleitung können wir Folgendes erkennen: Die Anforderungsweiterleitung ist ein serverseitiges Verhalten. Der Server sendet die Anforderung im Namen des Clients und sendet sie zurück Das Ergebnis ist das Verhalten des Clients. Der Interaktionsprozess ist wie in der folgenden Abbildung dargestellt: Die Datenfreigabe ist unterschiedlich Seite, also während des gesamten Ausführungsprozesses, muss der Client (Browserseite) nur einmal eine Anfrage senden, sodass im gesamten Interaktionsprozess, also während des gesamten Anfrageprozesses, dasselbe Request-Anfrageobjekt und ein Antwort-Antwortobjekt verwendet werden , die Anfrage und die zurückgegebenen Daten werden gemeinsam genutzt und die Anfrage wird wiederholt. Senden Sie zwei völlig unterschiedliche Anfragen an den Client, sodass die Daten in den beiden Anfragen unterschiedlich sind. 4. Die endgültige URL-Adresse ist unterschiedlich. Die Anforderungsweiterleitung erfolgt, wenn der Server die Anforderung stellt und das Ergebnis dann an den Client zurückgibt. Die URL-Adresse bleibt also während des gesamten Anforderungsprozesses unverändert Der Client sagt: „Sie besuchen einen anderen Ort“, sodass der Browser die Anforderung erneut sendet. Die vom Client schließlich angezeigte URL ist also auch die endgültige Sprungadresse und nicht die Adresse der ursprünglichen Anforderung, sodass sich die URL-Adresse geändert hat . 5. Die Codeimplementierung ist anders

Was sind die Unterschiede zwischen der Java-Anforderungsweiterleitung und der Anforderungsumleitung?In SpringBoot lautet der Implementierungscode für die Anforderungsweiterleitung wie folgt:

@RequestMapping("/fw")
public void forward(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getRequestDispatcher("/index.html").forward(request, response);
}
Nach dem Login kopieren

Und der Implementierungscode für die Anforderungsumleitung lautet wie folgt:

@RequestMapping("/rt")
public void redirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.sendRedirect("/index.html");
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen der Java-Anforderungsweiterleitung und der Anforderungsumleitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage