[JAVA] JSP-Informationen zum MVC-Modell des Servlets, zur Umleitung / Weiterleitung und zum Gültigkeitsbereich

MVC-Modell

Abkürzung für Modell, Ansicht, Controller-Modell, das für "Verarbeitung", "Ergebnisanzeige" bzw. "Überwachung" zuständig ist. Die Steuerung empfängt die Anforderung auf der Benutzerseite, die Steuerung fordert das Modell auf, die Daten zu verarbeiten, das Modell gibt die verarbeiteten Daten an die Steuerung zurück, die Daten werden an die Ansicht übergeben, die Ansicht wird geformt und als Antwort an den Benutzer zurückgegeben und so weiter. werden.

In einer Servlet / JSP-Umgebung wird der Controller häufig von der Servlet-Klasse ausgeführt, die Ansicht wird von der JSP ausgeführt und das Modell wird häufig von einer normalen Java-Klasse ausgeführt. Einer der Vorteile davon ist, dass die Entwicklung geteilt werden kann, ohne dass Wissen erforderlich ist, das mehrere Bereiche umfasst.

01.png

Weiterleiten und umleiten

Es gibt zwei Möglichkeiten, Seiten von einer Servlet-Klasse zu einer JSP oder einer anderen Servlet-Klasse zu wechseln: Weiterleiten und Umleiten. Die Weiterleitung ist schnell, anstatt sich nur innerhalb derselben Anwendung bewegen zu können, und die Adressleiste des Browsers enthält die Informationen des ersten Anforderungsziels. Andererseits ist die Umleitung langsam, anstatt auf Dateien und andere Anwendungen (andere Websites) zugreifen zu können, und die Informationen in der Adressleiste des Browsers werden ebenfalls geändert.

02.png

Methode zur Verarbeitung

nach vorne

umleiten

Speicherort der JSP-Dateien

Die unter Webcontent / WEB-INF / gespeicherte JSP-Datei kann nicht als Reaktion auf Anweisungen des Browsers geöffnet werden. Sie kann daher verwendet werden, wenn Sie keine direkte Verknüpfung herstellen möchten. Aufgrund der Tatsache, dass es nicht möglich ist, direkt vom Browser aus zu öffnen, ist es auch möglich, von vorne anzuzeigen, aber nicht umzuleiten.

Umfang

Selbst wenn Sie Weiterleiten oder Umleiten verwenden, können Sie Daten nicht so speichern oder senden, wie sie sind. Durch Speichern von Daten in einem Bereich, der als Bereich bezeichnet wird, können Daten zwischen Servlets und JSPs gemeinsam genutzt werden.

Bedingungen für das Teilen

Es können nur Instanzen gespeichert werden -Es muss möglich sein, durch Implementierung von java.io.Serializable zu serialisieren ・ Die Klasse gehört zum Paket -Haben Sie einen Standardkonstruktor (Konstruktor ohne Argumente) in der Öffentlichkeit -Felder sollten gekapselt sein und stattdessen Getter / Setter haben, die Namenskonventionen folgen Wird in der Regel zum Teilen festgelegt.

Bereich zum Teilen

Der Bereich ist je nach Speicherbereich in vier Bereiche unterteilt und wird als "Seitenbereich", "Anforderungsbereich", "Sitzungsbereich" bzw. "Anwendungsbereich" bezeichnet.

Seitenumfang

Der Bereich liegt nur innerhalb dieser Seite. Ich werde diesmal weglassen.

Umfang anfordern

Der Bereich reicht von der Anfrage bis zur Antwort. Es kann für Webanwendungen verwendet werden, z. B. zum Anzeigen von Berechnungsergebnissen basierend auf Eingabedaten.

Sitzungsumfang

Der Bereich liegt zwischen den Sitzungen. Erforderlich, wenn der vorübergehend im Registrierungsformular usw. eingegebene Wert mehrmals verwendet wird.

Anwendungsbereich

Wird verwendet, wenn Daten verarbeitet werden, die vom gesamten Benutzer gemeinsam genutzt / referenziert werden, z. B. Abstimmungsschaltflächen. Wird verworfen, wenn die Anwendung geschlossen wird.

Speichern / Abrufen

Sie können mit einer Methode speichern und abrufen, die für jeden Bereich einen gemeinsamen Namen und ein gemeinsames Argument in einer anderen Klasse hat.

** Speichermethode **

** Erfassungsmethode **

Für den Anforderungsumfang

Zu verwendende Klasse: *** ServletRequest *** Klasse

Es gibt einige implizite Objekte in JSP, die als Variablen verwendet werden können, ohne sie explizit zu deklarieren, und die "aktuelle Anforderung", auf die der Typ * ServletRequest * verweist, ist *** request ***. Kann implizit behandelt werden.

Für den Sitzungsumfang

Zu verwendende Klasse: *** HttpSession *** Klasse

Sowohl beim Speichern als auch beim Abrufen von Daten muss eine Instanz der "verwendeten Sitzung" abgerufen werden. Es kann mit * HttpServletRequest # getSession () * abgerufen werden und wird durch Einfügen in eine Referenzvariable vom Typ * HttpSession * behandelt. Hier gibt es auch ein implizites Objekt, und Sie können die "aktuell verwendete Sitzung" implizit mit *** session *** behandeln.

Vorsichtsmaßnahmen bei Verwendung des Sitzungsbereichs

Um die Sitzungsbereiche mehrerer Personen gleichzeitig zu verwalten, muss die Sitzungs-ID zwischen der Client- und der Serverseite freigegeben und der Bereich und die Sitzungs-ID auf der Serverseite zugeordnet werden. In diesem Fall werden so viele Bereiche vorbereitet, wie Clients vorhanden sind, und es kann zu Speicherpannen kommen. Daher ist es erforderlich, den Inhalt des Bereichs und der Sitzung angemessen zu zerstören. Ein Beispiel ist das Sitzungszeitlimit, bei dem Sitzungen verworfen werden, die für einen bestimmten Zeitraum nicht als Ziele für die Speicherbereinigung verwendet wurden.

Um es einfacher zu machen, einer kurzen Zeit der Anforderungskonzentration standzuhalten, wird außerdem eine Methode vorbereitet, die diese freiwillig verwirft und vom Entwickler angemessen angewendet werden muss.

Für den Anwendungsbereich

Zu verwendende Klasse: *** ServletContext *** -Klasse

Wie beim Sitzungsbereich müssen Sie eine Instanz der "von Ihnen verwendeten Anwendung" abrufen. Das implizite Objekt davon wird mit dem Variablennamen *** application *** behandelt. Wenn Sie es als Methode erhalten möchten, können Sie es mit * HttpServlet # getServletContext () * abrufen.

Vorsichtsmaßnahmen bei Verwendung des Anwendungsbereichs

Daten können im Anwendungsbereich als ein Bereich gespeichert werden, der allen Clients gemeinsam ist. Da die Daten jedoch nur vorübergehend auf der Serverseite verbleiben, wird der Bereich der Anwendung, der gleichzeitig mit dem Beenden des Servers beendet wurde, zerstört. Wenn Sie die Daten auch nach dem Neustart verarbeiten möchten, müssen Sie sie in Form einer Datei belassen.

Bereichstyp Umfang anfordern Sitzungsumfang Anwendungsbereich
Anwendungsbereich Bis die Anfrage beantwortet wird Bis die Sitzung zerstört ist Bis die Anwendung geschlossen ist
Nutzungsklasse ServletRequest HttpSession ServletContext
Implizites Objekt der Klasse request session application
Hauptanwendungen Eingabeformular Anmeldeinformationen Gemeinsame Daten
Andere Vorsichtsmaßnahmen Redirect gibt eine Antwort einmal zurück und kann nicht verwendet werden Wenn sich Daten ansammeln, wird der Server belastet. Verwerfen Sie sie daher entsprechend. Wenn Sie die Daten wiederverwenden möchten, geben Sie sie in eine Datei usw. aus.

Recommended Posts

JSP-Informationen zum MVC-Modell des Servlets, zur Umleitung / Weiterleitung und zum Gültigkeitsbereich
Denken Sie an die Kombination von Servlet und Ajax
Was ist das Java Servlet / JSP MVC-Modell?
Über Weiterleiten und Weiterleiten
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
Dies und das von JDK
Stellen Sie die Anzahl der Sekunden für den schnellen Vor- und Rücklauf in ExoPlayer ein
Informationen zur Funktionsweise von next () und nextLine ()
Punkt 57: Minimieren Sie den Umfang lokaler Variablen
Ein einfaches Beispiel für das MVC-Modell