Die fabelhafte Welt des Web 2.0 wird auf dem Google-Weg auch für Java-Entwickler noch schöner: Hochdynamische Websites mit asynchroner Kommunikation lassen sich mit dem Google Web Toolkit (GWT) ganz analog zu Swing-Oberflächen programmieren. Besonders komfortabel: Endlich lässt sich die Client-Seite in derselben Sprache entwickeln wie die Server-Dienste, denn der eingebaute GWT-Compiler übersetzt Ihren Java-Code in HTML und JavaScript. Das GWT ist dabei in der Lage, für jeden Browser eine eigene JavaScript-Datei zu erstellen - das verschlankt den zu ladenden Code, und die fertigen Seiten werden ordentlich auf verschiedenen Plattformen dargestellt. Ganz nebenbei löst das GWT noch ein gängiges Problem von Ajax-Anwendungen: Selbstverständlich kann der Endanwender mit dem Zurückknopf zu vorherigen Seiten navigieren.
Michael Seemann macht Sie in diesem Buch mit den Möglichkeiten des Google-Werkzeugkastens anhand eines durchgehenden Projekts vertraut: In einem Fitnesstagebuch können User ihre sportlichen Erfolge im Web aufzeichnen.
Eine geführte Schnuppertour
Von der Installation des GWT über die Einrichtung und Strukturierung eines Projekts bis zur Kommunikation mit dem Server erfahren Sie erst einmal alles, was Sie prinzipiell über die Arbeit mit dem Toolkit wissen müssen.
Die richtigen Voraussetzungen schaffen
Ein echtes Projekt will gut durchdacht sein: Wie soll die Architektur aussehen? Lässt sich die Arbeitsumgebung (z.B. Eclipse) für diese Entwicklung im Team konfigurieren? Wie wäre es mit einem Bauplan für die Dialoge nach dem bewährten MVC-Muster?
Die Umsetzung
Per Remote Procedure Calls und XML oder JSON wird die asynchrone Kommunikation durchgeführt. Der Autor zeigt Ihnen, wie Sie Sitzungen verwalten, und stellt Schutzmaßnahmen gegen Angriffe vor. Er entwickelt ein FileUpload-Widget, demonstriert, wie man mit der Konfiguration des Webservers die Performance optimieren kann, und gibt zahlreiche Tipps und Tricks.
Ein Kapitel über die Verwendung von Fremdbibliotheken und nützliche Anhänge runden dieses Praxisbuch ab.