4D v16Web Server |
||
|
4D v16
Web Server
Web Server
Hier lernen Sie, wie Sie den in 4D integrierten Web Server konfigurieren und einrichten. Die in 4D integrierte Architektur bietet viele Vorteile, da Sie mit demselben Tool und demselben Code sowohl im Einzelplatz als auch im Client/Server Modus entwickeln und ohne Tools zu wechseln, auch Daten der Anwendung im Web veröffentlichen können. Zuerst prüfen wir den Port zum Veröffentlichen. Das ist unter Windows nicht notwendig. Auf Mac OS wird standardmäßig Port 80 von Apache verwendet. So setzen wir diesen Port, z.B. auf 8080 und starten dann den Web Server (in der Praxis markieren wir die Option "Automatisch starten", so dass es automatisch wird). Die Seite, die im Browser erscheint, gibt an, dass die Verbindung hergestellt wurde. Sehen wir uns an, was passiert ist. Menü Start -> Start Web Server und anschließend Start -> Test Web Server Wir gehen zu den Einstellungen der Datenbank: Es ist unsere Aufgabe, den Inhalt der Seite zu ändern und falls nötig, den Namen des Ordners, der unsere Web Site enthält (wie HTML Seiten, Bilder, JavaScript und CSS). Für leichteres Arbeiten empfehlen wir, die Dateien in folgender Anordnung zu gliedern:
...wo Sie die verschiedenen Dateitypen in den entsprechenden Ordnern sammeln können. Zuerst ändern wir die Home Page (index.html), um Daten aus der Anwendung hinzuzufügen (das kann die Anzahl Datensätze pro Tabelle, der Inhalt eines Array, etc. sein). Doch zuvor müssen wir verstehen, wie Meldungen zwischen Browser und dem 4D Web Server ablaufen.
Diese Methode empfängt eine bestimmte Anzahl Parameter, über die Sie die Bearbeitung ausführen und Senden der Antwort steuern können. Nehmen wir an, der Browser fragt folgendes an:
Bevor wir weitergehen, ändern wir eine 4D "Preference", um die Standardseite zu definieren, die wir per Programmierung senden wollen.
Ab jetzt kann 4D nicht mehr automatisch, also ohne unsere Kontrolle, eine Seite senden. Bei einer Änderung in den Web Server Einstellungen müssen Sie den Web Server stoppen und erneut starten. Jetzt wollen wir die Methode On Web Connection so verändern, dass sie die passende Seite sendet. Diese Methode empfängt, wie alle 4D Methoden, Parameter. Als nächstes können wir testen, ob der empfangene Parameter "/" ist; wenn ja, soll eine bestimmte Seite gesendet werden; hier die Seite index.html. C_TEXT($1) Wir setzen einen Unterbrechungspunkt und laden die Seite erneut in unseren Browser. Wir sehen, dass der Browser in Standby geht. Wir sehen, dass in $1 der Parameter "/" übergeben wird, in diesem Fall senden wir die Seite index.html. Jetzt ändern wir unsere Seite, um Datum und Zeit sowie die Liste aller Techniker anzuzeigen.
Wir wollen hierfür die Variablen und Daten der Datenbank verwenden. Beachten Sie, dass für jede Web Verbindung ein neuer Prozess erstellt wird, und 4D behält die Auswahlen früherer Anfragen nicht bei. (Ausführliche Informationen zu Sitzungen finden Sie in der 4D Dokumentation. Wir erläutern hier nur die grundlegenden Mechanismen. Evtl. werden Variablen nicht gelöscht, das ist das Prinzip hinter Sessions.) Laden wir die Seite erneut in den Browser, gibt 4D an, dass die beiden Variablen undefiniert sind. (4D hat versucht, vdate und vtime zu finden). Wir müssen sie also initialisieren und Werte zuweisen, bevor wir die Seite neu laden. In der Methode On Web Connection weisen wir diesen 2 Variablen Werte z. Dazu fügen wir die beiden Zeilen in die Methode On Web Connection ein:
vDate:=Current date Jetzt haben wir Datum und Uhrzeit. Bevor wir die Seite senden, können wir z.B. eine Auswahl Techniker erstellen: ALL RECORDS([Technicians]) Laden wir die Seite erneut, erscheinen nicht die Techniker selbst; wir müssen sie im index.html Code hinzufügen: <br><br> <!--4DLOOP [TECHNICIANS]--> <!--4DVAR [TECHNICIANS]lastname--><br> <!--4DENDLOOP--> Wir machen hier zwei Zeilenumbrüche und dann eine Schleife auf die Techniker und geben z.B. an, dass wir den Inhalt eines Feldes wollen, nämlich den Nachnamen des Technikers mit Zeilenschaltung am Ende. Beim Neuladen der Seite sind jetzt alle Techniker da. Natürlich lassen sich beim Erstellen der Seiten alle HTML Anzeigeelemente, wie Listen, Arrays, CSS und DIVs verwenden. Ziel unseres Kapitels ist jedoch das Konzept und nicht die Form. Jetzt wollen wir jeden Techniker anklickbar machen. Dazu machen wir folgendes: <a href="/4DCGI/View/Tech/<!--4DVAR [TECHNICIANS]ID-->"><!--4DVAR [TECHNICIANS]lastname--></a><br> Wir sichern und laden die Seite erneut, nun lässt sich jeder Techniker anklicken. Im unteren Teil erscheinen keine Details, in HREF ist nicht definiert ist, was dieser Link zeigen soll: Wir müssen selbst festlegen, welche URL in 4D erscheint, und dabei berücksichtigen, dass bei einer systematischen Übergabe in On Web Connection, die 4D Syntax /4DCGI ist. Wir sichern und gehen zurück zu 4D. Jetzt haben wir anklickbare Links, die die ID des Technikers angeben. Nun können wir sicher sein, dass wir den richtigen gefunden haben. Wir sichern und laden die Seite erneut. Jetzt sehen wir unten am Ende jeder URL die ID des Technikers. Wir testen im Schrittmodus, um zu sehen, was beim Klicken auf einen Link in 4D passiert: In der Methode On Web Connection enthält $1 das Erwartete. Also ändern wir die Methode, damit diese neue Information berücksichtigt wird. Wir sehen, dass $1 nicht nur "/" enthalten kann, sondern zum Beispiel auch /4DCGI. So sind wir hier im Kontext eines Standard Aufrufs der Methode On Web Connection. Wir erweitern die Methode On Web Connection wie folgt: :($1="/4DCGI/@") //Empfang einer URL für On Web Connection Wir weisen den Wert einer Zwischenvariable zu, wo wir 4DCGI ersetzen; wird dann die Anfrage gesendet, um den Techniker anzusehen, ersetzen wir wieder den nicht benötigten Teil, um schließlich die ID zu erhalten, die wir in dieser Variable wollen. Wir erstellen also eine technische Seite mit Namen page-tech.html, die Vor- und Nachname des Technikers und seine E-Mail enthält. Aber zuerst prüfen wir, ob wir dieses Ergebnis erhalten.
Dazu:
Führen wir die Methode in 4D fort, empfängt unser Browser die Information von page_tech mit Vor- und Nachname des Technikers. Jetzt können wir in dieser Seite die Liste der nächsten 10 Einsätze hinzufügen, die vom Techniker ausgeführt wurden. Dazu müssen wir in der Methode On Web Connection vor Senden der Seite nur folgendes hinzufügen:
QUERY([Interventions];[Interventions]Tech_ID=[Technicians]ID) Wir fügen einen Titel hinzu, bei Bedarf mit vorangestelltem Zeilenvorschub. An dieser Stelle können wir auch wie oben ein href tag hinzufügen, um jeden Einsatz anklickbar zu machen. Sie können die Änderungen sichern und natürlich die URL angeben, die Sie in Ihrem Web Server empfangen wollen, damit jede Zeile anklickbar wird. Dieser erste Einblick zum Einrichten einer Web Site zeigt, wie Sie Ihre Daten mit der in 4D integrierten Engine im Internet veröffentlichen können. Hier sollten Sie folgendes beachten: Mit dem 4D Web Server können Sie alle gängigen web-spezifischen Technologien verwenden. Zur Vertiefung empfehlen wir, in der Dokumentation nachzulesen, insbesondere die Bereiche zur Sitzungsverwaltung, Formulare, Integration von Frameworks, sowie alle Elemente, die für eine Web Site erforderlich sind. Ein Hauptkonzept ist das Implementieren des Tag 4DINCLUDE. Damit können Sie immer dieselbe Seite senden, während Sie ihren Inhalt über dieses Tag verwalten. Wenn Sie gut mit Internet Tools vertraut sind, können Sie auch die Javascript Funktion XmlHttpRequest verwenden. Das macht Ihre Site kompatibel mit Web 2.0. Mit generischem Code und durch Aufrufen vorhandener Methoden in Ihrer Methode zum Anmelden im Web können Sie eine Menge Zeit sparen, da Sie bereits geschriebenen Code, wie Methoden zum Suchen, Hinzufügen, Löschen, Prüfen, wieder verwenden.
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
Self-Training ( 4D v16) |