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.
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.
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.
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.
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.
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.
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.