feat(editor): F4.6d the web browser and web server on a computer's desktop
The oracle BrowserWindowRun uses Java's browser and web server windows as a person does; the room keeps a browser window per computer and sends a program window's view, the start names the person's language. The editor shows the page in a sandboxed frame, links and forms go to the room, the web server has its button, virtual hosts and lines. Better than Java: relative images and links count from the page's folder, a mark stays in the page, the error page from Java's template, the virtual hosts' file with complete rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1292,3 +1292,43 @@ Gemessen (03.10.2026):
|
||||
Darum misst `GetterDefaults` jetzt auch `#priority` der gespeicherten
|
||||
Thread-Klassen (alle 5), die vorher unaufgelöst als 0 gelesen wurden.
|
||||
|
||||
|
||||
### Webbrowser und Webserver (F4.6d)
|
||||
|
||||
`BrowserWindowRun` öffnet Javas `GUIApplicationWebBrowserWindow` und
|
||||
`GUIApplicationWebServerWindow` auf je einem `GUIDesktopPanel` im Netz von
|
||||
web-lan (Browser 192.168.0.20, Webserver .30 mit eigenen Seiten) und benutzt
|
||||
sie wie eine Person: eine Adresse in die Adresszeile und Enter, ein Link
|
||||
(das Ereignis, das Swings `HTMLEditorKit` daraus macht: das href gegen die
|
||||
Basis des Dokuments), ein Formularknopf (der echte Knopf, den Swing für das
|
||||
Formular zeichnet, mit `doClick`), am Server Startknopf, Kästchen und
|
||||
Tabelle der virtuellen Hosts, dazu Stopp und Start des Systems. Nach jedem
|
||||
Schritt schreibt es Adresszeile, Titel, die Seiten, die das Programm dem
|
||||
Fenster gab, und die Anfragen des Servers, am Server Knopf, Kästchen,
|
||||
Tabelle, Datei und Zeilen (`packages/sim/test/browserWindow.java.json`).
|
||||
|
||||
Gemessen (03.10.2026):
|
||||
|
||||
* Am Anfang zeigt die Adresszeile „http://“, der Titel den Programmnamen,
|
||||
die Seite Javas Logo. Jeder Abruf schreibt „http://“ + Host + Pfad ohne
|
||||
Query in Zeile und Titel; kam die Seite, wird ihr Titel der Titel des
|
||||
Fensters — als HTML („Links &amp; mehr“). Keine Adresse: die Zeile
|
||||
zurück auf „http://“, der Titel bleibt, nichts lädt.
|
||||
* Ein Query geht nie hinaus (`HTTPNachricht.getPfad` schneidet ihn ab):
|
||||
weder getippt noch aus einem Link noch aus einem GET-Formular. Ein
|
||||
POST-Formular schickt seine Felder in Reihenfolge samt gedrücktem Knopf,
|
||||
form-codiert (`name=Fil+ius&c=1&s=y&t=%C3%BC%26%3D&ok=Gut`).
|
||||
* Relative Links und Bilder zählen vom Wurzelordner des Servers: die Basis
|
||||
des Dokuments ist der Bildzwischenspeicher, nicht die Seite (ein Bild in
|
||||
`/ordner/drei.html` holt `bild.png` aus der Wurzel). Ein `#anker` lädt die
|
||||
Startseite des Hosts.
|
||||
* Bei einem Status außer 200 zeigt Java immer `sw_webbrowser_msg2`
|
||||
(„Fehler“): `einlesenTextdatei` löst den schon aufgelösten Pfad der
|
||||
Vorlage `tmpl/http_fehler_*` ein zweites Mal auf und findet sie nie. Ohne
|
||||
Server: `sw_webbrowser_msg1`. Text und Bilder zeigt das Fenster als HTML.
|
||||
* Der Webserver: „Starten“/„Anhalten“, das Kästchen schaltet die Tabelle
|
||||
ein (ohne Datei). Jede geänderte Zelle schreibt `/www.conf/vhosts` mit
|
||||
allen fünf Zeilen, leere als Leerzeilen; neu gelesen überspringt
|
||||
`StringTokenizer` die Leerzeilen, und die Zelle einer unvollständigen
|
||||
Zeile rückt in die davor. Liegt die Datei da, ist das Kästchen nach dem
|
||||
nächsten Start wieder an, auch abgeschaltet.
|
||||
|
||||
Reference in New Issue
Block a user