
Auf der Schulbank
Es hatte sich abgezeichnet und war unvermeidbar. Bücher lesen, Tutorials, Code anderer Leute studieren, viel selber ausprobieren, und das Verifizierte und Verstandene nochmal selber formulieren und aufschreiben — der "klassische" Weg, sich in der Programmierung etwas beizubringen.
Den Weg musste ich bei JSP und Servlets gehen, wobei die Verfügbarkeit und Vielfalt von Material an Büchern und Web-Seiten im Netz dabei sehr hilfreich ist. "Früher" gab es nicht so viele Quellen, und schon gar nicht welche die frei verfügbar waren. Englisch muss man auch nicht mehr können — wenn irgendetwas unverständlich ist, können die Übersetzungen von Google Translate oder MS Word helfen.
Meine "Selbstanleitung für Tomcat, JSP und Servlets" ist hier hinterlegt. Es funktioniert für mich, immer nur das aufzuschreiben was ich selber verstanden und auch ausprobiert habe. Richtig schwierig finde ich es, einen solchen Text so zu formulieren, dass auch andere den Text lesbar finden.
JSP Seiten in der F1 WebSite
Der Anwendungsfall für JSP sind "dynamische" Seiteninhalte. Im Wesentlichen geht es um Nutzereingaben/-interaktionen und sich daraus ergebende Antworten eines Backend-Servers — um was auch immer es sich fachlich dabei handeln möge. Die F1 WebSite könnte man auch nur mit statischen Seiten aufbauen, das wären halt einige hundert. Bei einigen Features der F1-WebSite macht es daher Sinn, JSP zu nutzen. Sowohl bei den Rennergebnissen eines Fahrers / eines Teams und den weiteren Drill-Downs.
Die bekannteste F1 Statistik-WebSite F1-Stats macht alle Abfragen auf ihre Datenbasis mit JSP. F1-Stats ist eine echte Referenz. Das Design der F1-Stats-Seiten ist etwas in die Jahre gekommen, aber das ist der Gang der Dinge.
Bei meiner F1 WebSite geht es jetzt von einer neuen Fahrerseite mit allen Fahrern (angeordnet in alphabetischen Tabs) über die Autos eines Fahrers in den jeweiligen Jahren …


Fahrerseite — Übersicht und Detailauswahl
… zu einer Übersicht und dann zu den detaillierten Ergebnissen eines einzelnen Fahrers — beides sind JSPs, die parametrisiert über ein Servlet auf die Postgres DB zugreifen.


Detaillierte Fahrerergebnisse — JSP mit Servlet-Backend
Das Ganze gibt es dann nochmal für die Teams. Schon cool, und im Vergleich zu den statischen Seiten auch "lesbarer", wobei die JAVA Programme zur Erzeugung der statischen Seiten durch die Verwendung von Templates und Ersetzung von Variablen schon ziemlich gut geworden sind.
Admin GUI für die Web Site
Ein weiterer Anwendungsfall für JSP ist eine GUI für meine Programme zur Erzeugung statischer Seiten. Einige Seiten ändern sich halt doch — Sauro Torregianni stellt weiter fleißig neue Autos fertig, und ja, es gibt ja noch eine laufende Formel-1-Saison mit neuen Fahrern, Autos und Ergebnissen.
Jetzt können die statischen Seiten über eine GUI in HTML/CSS aktualisiert werden — die JPGs mit neuen Autos müssen dazu einfach in die entsprechenden Directories abgelegt werden. Bei der Gelegenheit habe ich eine "Test"- und eine "Prod"-Umgebung eingerichtet, und die SQL-Statements aus dem Code heraus und in eine Datei gekapselt, auf die über Methoden zugegriffen wird. Das erhöht die Lesbarkeit und Wartbarkeit deutlich. Wobei ich da ja mein eigener und einziger Kunde bin …

Gesamtsystem der F1 WebSite
Ist schon ein ganz ordentliches Paket geworden:

… und ich bin noch lang nicht fertig.
Das Ziel ist es ja, das Ganze (Bilder, HTML-Dateien, Postgres DB, Tomcat, JSPs und Management GUI) in Docker-Container zu packen und auf beliebigen Maschinen (genauer: Macs) zu deployen. Das wird wohl noch etwas dauern …