Webanwendungsstruktur nach Java und Verarbeitungsablauf in der Präsentationsschicht

Einführung

In der Schulung für neue Mitarbeiter haben wir eine Webanwendung mit Java entwickelt, daher möchte ich kurz zusammenfassen, was ich dort gelernt habe. Ich denke, es gibt viele Fehler, daher wäre ich dankbar, wenn Sie darauf hinweisen könnten.

Wir werden uns auf den Verarbeitungsablauf auf der Serverseite der Webanwendung konzentrieren. Als angenommenes Beispiel handelt es sich um ein einfaches Suchbeispiel mit einem Element.

Interaktion zwischen Servern

Eine kurze Beschreibung des dynamischen Informationsaustauschs zwischen Client und Server bei der Implementierung einer dynamischen Webseite.

Zunächst sendet der Client eine Anfrage an den Webserver. Das Senden und Empfangen zwischen diesem Client und dem Webserver erfolgt über das HTTP-Protokoll. Wenn Sie eine dynamische Webseite anzeigen möchten, müssen Sie einige Verarbeitungen (Programme) auf der Webserverseite durchführen. Der Prozess ist eine Webanwendung, die in serverseitigen Sprachen wie Java und PHP implementiert wird. Dieses Mal wird davon ausgegangen, dass es in Java implementiert ist.

Um die Anwendung ausführen zu können, muss ein Anwendungsserver vom Webserver getrennt sein. (Tomcat ist berühmt für Java-Anwendungsserver.) Der Anwendungsserver benötigt wie das Senden und Empfangen zwischen dem Client und dem Webserver ein bestimmtes Protokoll zum Senden und Empfangen an und von der Webanwendung. Wenn Sie Tomcat für den Anwendungsserver und Apatch für den Webserver wie oben beschrieben verwenden, implementieren Sie in Apatch ein Verknüpfungsmodul mit dem Namen mod_jk als Erweiterung. Der Anwendungsserver und der Webserver können mithilfe des ajp13-Protokolls von mod_jk senden und empfangen. Da Tomcat über einen einfachen Webserver verfügt, kann es ohne besondere Zusammenarbeit senden und empfangen.

Webanwendungsstruktur

Nun wollen wir sehen, wie die Webanwendung auf dieser Serverseite verarbeitet wird.

Webanwendungen werden mit der MVC-Architektur als Modell entworfen und grob in die folgenden drei Ebenen unterteilt.

· Präsentationsfolie · Unternehmen ・ Integrationsschicht

Die Rollen der in jeder Ebene enthaltenen Programme sind klar voneinander getrennt.

Als nächstes werde ich beschreiben, wie die Verarbeitung basierend auf den Anforderungsinformationen vom Client durchgeführt wird.

Ablauf der Anwendungsverarbeitung auf der Serverseite

スクリーンショット 2020-06-04 20.05.12.png

Anforderungsinformationen werden zuerst an FrontController übergeben. Dieser Front Controller ist ein Servlet, das die Verarbeitung von Webanwendungen zentral verwaltet.

Der Front Controller verteilt die Verarbeitung gemäß den Anforderungsinformationen. (Switch-Case-Anweisung ist gültig) Darin wird Aktion aufgerufen, und diese Aktion überprüft den Eingabewert, verwaltet die Sitzung (erstellt und gibt Sitzungsobjekte frei) und fordert die Verarbeitung an die Geschäftslogik der Geschäftsschicht an. (Abgesehen davon ist es in der Sitzungsverwaltung besser, die Sitzung so schnell wie möglich freizugeben, um die Serverressourcen effektiv zu nutzen, z. B. die Sitzung zu deaktivieren, wenn der Zugriff für einen bestimmten Zeitraum unterbrochen wird.)

Und das Kerngeschäft Logic steuert die Geschäftsabwicklung. Informationen, die für die Geschäftsabwicklung erforderlich sind, werden durch Zugriff auf die Datenbank erfasst. Verwenden Sie den Verbindungsmanager, um auf die Datenbank zuzugreifen. Verwenden Sie insbesondere die Methode getConnection von ConnectionManager, um das Verbindungsobjekt abzurufen (Verbindung zur Datenbank).

Erstellen Sie ein DAO-Objekt, indem Sie dieses Verbindungsobjekt als Argument an den Konstruktor des DAO übergeben. Anschließend ruft es die DAO-Methode auf und empfängt den Rückgabewert mit Entity.

So stellen Sie den Rückgabewert in DAO ein (bei 1 Suche) Wenn es ein Suchergebnis mit while (res.next ()) gibt, wird die Verarbeitung in {} ausgeführt. Verwenden Sie in {} res.get ~, um den Rückgabewert festzulegen

Nachdem Business Logic das Entity-Objekt empfangen hat, wird es im definierten Objekt gespeichert und als Rückgabewert festgelegt.

Erstellen Sie eine Geschäftslogik in Aktion und rufen Sie eine Methode auf. Stellen Sie das Ergebnis im Bereich usw. ein. Legen Sie das Ziel der Übergangsseite als Rückgabewert fest.

In FrontController empfängt es das Ziel der Übergangsseite von Action und leitet es weiter.

Anwendungsverhalten auf der Präsentationsebene

Servlets und JSPs

Ein Programm namens Servlet ist erforderlich, um eine HTML-Datei zu generieren, in der eine Webseite angezeigt wird. Das Servlet wird von einem Webanwendungsserver wie Tomcat ausgeführt.

Es ist möglich, eine Webseite nur mit diesem Servlet anzuzeigen. Da die Programmbeschreibung jedoch kompliziert wird und es sich nicht um ein schönes Programm handelt, bitten Sie die JSP mit in HTML eingebettetem Java-Code, die Webseite anzuzeigen. Wird sein.

Um die Webseite zu wechseln, müssen der vom Client gesendeten Anforderung Parameter hinzugefügt werden. Es gibt zwei Möglichkeiten, die Anfrage zu senden: GET und POST.

GET und POST

Sowohl für die GET- als auch für die POST-Methode müssen Sie einen beliebigen Wert als Parameter festlegen.

Bei der GET-Operation wird jeder im Parameter festgelegte Wert in Form einer Einbettung in die URL an den Webserver gesendet. Wenn Sie die Webseite erneut durchsuchen möchten, können Sie daher problemlos darauf zugreifen. Mit anderen Worten, Lesezeichen werden für jeden Parameter gespeichert. Zu den Nachteilen gehören die oben erwähnte Begrenzung der Parameterlänge und die geringe Sicherheit.

Andererseits ist im POST-Betrieb ein im Parameter festgelegter Wert nicht in der URL enthalten und wird in der im Nachrichtentext der Anforderung gespeicherten Form an den Webserver gesendet. Daher ist es sicherer als die GET-Operation. Darüber hinaus gibt es keine Begrenzung für die Länge der Parameter, und es kann eine große Datenmenge gesendet werden.

Bei der Verarbeitung in der Anwendung wird dies im benutzerdefinierten Servlet beschrieben, indem die in HttpServlet definierte Methode doGet und die Methode doPost überschrieben werden. Auf diese Weise können Sie die HTTP-Funktionen verwenden.

Zusammenfassung

Dieses Mal habe ich kurz das Verhalten von Webanwendungen auf der Serverseite und das Verhalten von Anwendungen auf der Präsentationsschicht erläutert. Es wird länger dauern, daher möchte ich die Geschäftsschicht und die Integrationsschicht in einem separaten Artikel erläutern.

Recommended Posts

Webanwendungsstruktur nach Java und Verarbeitungsablauf in der Präsentationsschicht
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
Rolle von JSP in Webanwendungen [Java]
Die Geschichte, dass das Servlet nicht in die Java-Webanwendung geladen werden konnte
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Ich habe die Daten der Reise (Tagebuchanwendung) in Java erhalten und versucht, sie # 001 zu visualisieren
Parallele und parallele Verarbeitung in verschiedenen Sprachen (Java Edition)
[Java] Verschiedene Methoden, um den in List gespeicherten Wert durch iterative Verarbeitung zu ermitteln
[Java] Beurteilung durch Eingabe von Zeichen in das Terminal
[Java / PostgreSQL] Verbinden Sie die WEB-Anwendung mit der Datenbank
Analysieren Sie die Datums- und Zeitzeichenfolge, die von der asctime-Funktion der C-Sprache in Java formatiert wurde
[Android / Java] Bildschirmübergang und Rückgabeverarbeitung in Fragmenten
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Lesen Sie die Paketerfassung, die von tcpdump mit Java erhalten wurde
Bildverarbeitung: Grundstruktur des vom Programm gelesenen Bildes
Asynchrone Verarbeitung und Web-API-Integration in Android Studio
In der Abbildung verstandene Java-Klassen und -Instanzen
Etwa der Ablauf der Entwicklung von Webanwendungen mit Rails.
Erstellen Sie eine JAVA WEB App und probieren Sie OMC APM aus
Was ist der Unterschied zwischen den Verantwortlichkeiten der Domänenschicht und der Anwendungsschicht in der Zwiebelarchitektur [DDD]?
Verzweigungsverarbeitung mit dem Rückgabewert von RestTemplate und dem Statuscode von ResponseEntity in Spring Boot
Erstellen wir eine Taschenrechner-App mit Java ~ Zeigen Sie das Anwendungsfenster an
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Erstellung einer Webanwendungsentwicklungsumgebung in Java (für unerfahrene Personen)
Verstehen Sie das Singleton-Muster, indem Sie Java- und JavaScript-Code vergleichen
Korrigieren Sie den Zeichencode in Java und lesen Sie von der URL
Denken Sie über die Unterschiede zwischen Funktionen und Methoden nach (in Java)
Verstehen Sie das Iterator-Muster, indem Sie Java- und JavaScript-Code vergleichen
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser
Gemessene Parallelverarbeitung mit Java
Rails-Webserver und Anwendungsserver
Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP
Suchen und Ausführen einer Methode aus einer Instanz mit Verarbeitung (Java)
Was ich in Java gelernt habe (Teil 1) Java-Entwicklungsablauf und Überblick
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Rufen Sie das aktuelle Datum und die aktuelle Uhrzeit ab, indem Sie die Zeitzone in Thymeleaf angeben
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Vorbereitung]
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Tomcat App Edition]
[Wahrscheinlich die einfachste] WEB-Anwendungsentwicklung mit Apache Tomcat + Java Servlet
Was ist der Unterschied zwischen einem Webserver und einem Anwendungsserver?
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um