Das Web-Modul

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Webserver-Anwendungen erstellen mit Web Broker


Das Web-Modul (Web.HTTPApp.TWebModule) ist von der Klasse System.Classes.TDataModule abgeleitet und kann auf dieselbe Weise wie diese verwendet werden: Durch Web-Anwendungsmodule werden Business-Regeln und nicht visuelle Komponenten der Web-Anwendung zentral gesteuert.

In dieses Modul nehmen Sie alle String-Generatoren auf, mit denen Ihre Anwendung Antwortbotschaften erzeugt. Es kann sich hierbei um integrierte String-Generatoren, wie zum Beispiel ein Web-Server, der als Client in einer MIDAS-Anwendung fungiert.

Außer zur Aufnahme von nicht visuellen Komponenten und grundlegenden Strukturen der Programmlogik wird das Web-Modul auch als Web-Dispatcher eingesetzt, der eingehende HTTP-Anforderungsbotschaften an Aktionselemente übergibt, die Antworten auf die Anforderungen generieren.

Möglicherweise verfügen Sie bereits über ein Datenmodul, das viele der nicht visuellen Komponenten und grundlegenden Strukturen der Programmlogik enthält, die Sie in Ihrer Web-Anwendung einsetzen wollen. Sie können das Web-Modul in diesem Fall durch dieses Datenmodul ersetzen. Dazu löschen Sie einfach das automatisch erzeugte Web-Modul und ersetzen es durch das betreffende Datenmodul. Anschließend fügen Sie eine Web.HTTPApp.TWebDispatcher-Komponente zu dem Datenmodul hinzu. Das Datenmodul kann nun wie ein Web-Modul Anforderungsbotschaften an Aktionselemente weiterleiten. Sie können die Art und Weise ändern, in der Aktionselemente zur Beantwortung eingehender HTTP-Anforderungsbotschaften ausgewählt werden. Dazu leiten Sie eine neue Dispatcher-Komponente vonWeb.HTTPApp.TCustomWebDispatcher ab und fügen diese zum Datenmodul hinzu.

Ihr Projekt kann nur einen Dispatcher enthalten. Dies kann entweder das Web-Modul sein, das bei der Erstellung des Projekts automatisch generiert wird, oder die TWebDispatcher-Komponente, die Sie einem Datenmodul hinzufügen, welches das Web-Modul ersetzen soll. Wenn während der Ausführung ein zweites Datenmodul erzeugt wird, das ebenfalls einen Dispatcher enthält, erzeugt die Web-Server-Anwendung einen Laufzeitfehler.

Hinweis: Das von Ihnen zur Entwurfszeit konfigurierte Web-Modul stellt eine Vorlage dar. In ISAPI- und NSAPI-Anwendungen spaltet jede Anforderungsbotschaft einen eigenen Thread ab. Für jeden Thread wird dynamisch eine separate Instanz des Web-Moduls und dessen Inhalt erzeugt.

Warnung: Das Webmodul einer DLL-basierten oder SO-basierten (für die Linux-Plattform) Webserver-Anwendung wird in den Zwischenspeicher geladen, damit die Antwortzeiten bei der späteren Wiederverwendung verkürzt werden. Der Status des Dispatchers und dessen Aktionsliste wird zwischen den einzelnen Anforderungen nicht erneut initialisiert. Durch das Aktivieren oder Deaktivieren von Aktionselementen während der Ausführung kann es zu unerwarteten Ergebnissen kommen, wenn dieses Modul für nachfolgende Client-Anforderungen verwendet wird.

Siehe auch