Anzeige
Anzeige
UX & Design
Artikel merken

Ajax-Applikationen einfach mit Java erstellen: GWT: Das Google Web Toolkit

Interaktive Webseiten sind inzwischen Standard. Aber nicht alle Webseitenersteller sind bereit, sich mit einem unübersichtlichen Gemisch aus HTML, CSS und JavaScript zu beschäftigen. Nicht zuletzt aus diesem Grund verlangt der Markt nach Frameworks und Toolkits. Sie bieten Schablonen, Codefragmente und diverse Hilfen. Mit seinem Web Toolkit stellt Google nun ein Werkzeug bereit, mit dem alleine auf Basis von Java Applikationen entstehen, die erst für die Veröffentlichung in Webseiten-Quellcode übersetzt werden.

7 Min. Lesezeit
Anzeige
Anzeige

Ohne Zweifel stellt das Unternehmen Google derzeit eine der aktivsten Kräfte bei der Weiterentwicklung des World Wide Web dar. Zahlreiche seiner Programmierschnittstellen und Tools erleichtern Webseitenerstellern die Verwendung modernster Features auf ihren Seiten. Und seit Mai 2006 steht das Google Web Toolkit (GWT) als kostenloses und unter Open-Source-Lizenz stehendes Toolkit mitten in der Google-Welt. Es unterstützt Seitenersteller und Webprogrammierer in vielfacher Hinsicht.

Anzeige
Anzeige

Jede Webapplikation besteht im Kern aus HTML und elementaren Standardressourcen, wie zum Beispiel Grafiken. Dazu kommen bei modernen Webapplikationen (insbesondere im Umfeld des Web 2.0) in jedem Fall ergänzende Techniken wie JavaScript und Style Sheets (CSS). Um diese Kerntechnologien herum bildet sich zunehmend ein Dickicht aus weiteren Techniken, die entweder nativ oder mittels Plugin von einem Browser verarbeitet und dargestellt werden. Das GWT dient nun zur Erstellung von Ajax- beziehungsweise interaktiven Webapplikationen im Allgemeinen, arbeitet aber zum Erstellungszeitpunkt dieses Artikels mit Java in einem Serverumfeld. Das GWT ist also vor allem ein Hilfsmittel für jene Webseitenersteller, die sich mit Java auskennen. Einerseits grenzt das die Zielgruppe damit extrem ein, andererseits werden damit aber Programmierer für die Erstellung von Webseiten eingebunden, die keine Erfahrung in HTML, JavaScript oder CSS haben oder den Kontakt damit meiden wollen.

Die letztendlich veröffentlichte Applikation muss aber auch im Fall des GWT aus den Technologien bestehen, die ein Browser versteht. Und während vor einigen Jahren der Ansatz über Java-Applets sehr populär war, wird bei einer GWT-Applikation auf den Einsatz spezieller Plugins verzichtet. Alle eingesetzten Techniken, die schließlich zum Browser gelangen, können von ihm nativ bearbeitet werden. Die Dateien werden mittels eines GWT-Compilers generiert und können somit für den Entwickler eine Black Box darstellen, deren Aufbau er sich nicht direkt ansehen muss und wird. Im Grunde kann man eine mit dem GWT erstellte Applikation im laufenden Betrieb nicht von einer händisch mit HTML, JavaScript und CSS erstellten Applikation unterscheiden.

Anzeige
Anzeige

Der GWT-Compiler

Der GWT-Compiler ist das Herz des gesamten Toolkits und schlägt – um im Bild zu bleiben – ständig im Hintergrund, wenn Entwickler während der Arbeit eine GWT-Applikation noch auf Basis von Java zu Testzwecken im so genannten Hosted Modus ausführen. Der GWT-Compiler unterstützt zum einen die zentralen Bestandteile von Java als Sprache selbst und zum anderen emuliert die GWT-Laufzeitbibliothek im Client einen relevanten Teil der Java-Laufzeitbibliothek. Und darüber hinaus erweitert das GWT die bereits über Java vorhandenen Fähigkeiten um einige interessante Funktionen. So können speziell auf Weboberflächen abgestimmte Leistungen erbracht werden, wie beispielsweise Folgendes:

Anzeige
Anzeige
  1. Es gibt dynamische, wiederverwendbare Komponenten zur Gestaltung von Oberflächen. Damit lassen sich komplexe Widgets erstellen. Ein Widget bezeichnet allgemein einen eigenständigen Teil einer Benutzeroberfläche, der eine spezielle (meist kleine) Funktion oder Anzeige als Teil eines übergeordneten Konzepts übernimmt. Das Layout solcher Widgets kann automatisch über Panels (Komponenten zur Aufnahme und Anordnung von Widgets) gesteuert werden. Das Widget selbst wird über .jar-Dateien ausgetauscht.
  2. Das GWT erleichtert erheblich den Umgang mit RPC (Remote
    Procedure Call – auf Deutsch „Aufruf einer entfernten Prozedur“). Das
    kann insbesondere bei Ajax-Applikationen von erheblichem Nutzen sein.
  3. Das GWT stellt auch eine Lösung für eines der klassischen Ajax-Probleme
    bereit, das von Kritikern immer wieder ins Feld geführt wird. Die
    asynchrone Datennachforderung am Browser vorbei hebelt nämlich die Funktion
    der Zurück-Schaltfläche im Browser aus. Mit anderen Worten: Die
    Betätigung der Zurück-Schaltfläche führt nicht zum letzten Zustand der Applikation (was der Anwender erwartet),
    sondern zur zuletzt geladenen Seite (was möglicherweise sogar eine
    fremde Applikation ist). Das GWT löst dieses Problem (und andere
    Aufgaben der Benutzerführung) und verwirrt damit den Anwender nicht
    über den fehlenden Zugriff auf die History.
  4. Mit dem GWT hat man eine vollständige Debug-Umgebung zur Verfügung,
    in der sich alle Erweiterungen und Vorteile der Fehlersuche in IDEs wie
    Eclipse verwenden lassen. Das Google Web Toolkit kann mit nahezu allen
    populären Entwicklungsapplikationen eingesetzt werden, egal ob nichtkommerziell oder kommerziell.
  5. Der Einsatz des GWT sorgt dafür, dass automatisch alle wichtigen
    Browser unterstützt werden. Gerade diese Tatsache kann nicht hoch genug
    bewertet werden. Jeder Webseitenersteller und -programmierer, dem der Begriff Browserkrieg nicht ganz fremd ist,
    wird das bestätigen.
  6. Das GWT stellt eine Integration von JUnit zum automatisierten Testen von Teilen der Applikation zur Verfügung.
  7. Die Klassen des GWT können bei Bedarf auch mit handgeschriebenem
    JavaScript innerhalb des Java-Quellcodes gemischt werden. Dafür existiert eine Schnittstelle mit Namen JavaScript Native Interface (JSNI).

Voraussetzungen, Download und Installation

Zum Einsatz des GWT benötigt man ein aktuelles Java-Entwicklungspaket (die Java-Standardedition SDK), das zunächst auf dem Rechner installiert wird. Bei Bedarf ist es unentgeltlich von der Webseite „http://java.sun.com“ zu beziehen. Es sollte sich mindestens um die Version Sun Java 2 Runtime Environment 1.4.2 handeln. Als Betriebssystem können Windows XP, Windows 2000, Mac OS X oder Linux w/ GTK+ 2.2.1 oder neuer verwendet werden.

Das Google Web Toolkit steht unter http://code.google.com/webtoolkit/download.html zum kostenlosen Download bereit. Die Installation des GWT ist so einfach, wie man es sich nur wünschen kann. Die aus dem Internet geladene Datei muss lediglich extrahiert werden.

Anzeige
Anzeige

Nach der Extraktion enthält der Ordner des GWT mit dem „applicationCreator“ die wichtigste Datei für den Umgang mit dem GWT. Damit werden die Grundschablonen für die GWT-Applikationen erstellt. Daneben im Verzeichnis liegt der „projectCreator“ (Erstellen von GWT-Projekten für Eclipse) sowie der „junitCreator“ (Junit-Tests) und das Tool „i18nCreator“ (Internationalisierung). Im Verzeichnis „doc“ befindet sich schließlich die Dokumentation vom GWT und allen relevanten Paketen und Klassen in Form von HTML-Dateien mit CSS-Formatierung.

Das GWT testen

Am sinnvollsten wird das GWT getestet, indem man die Beispiele modifiziert, die Google dem GWT beifügt. Der Installationsordner des GWT enthält im Unterverzeichnis „samples“ eine ganze Reihe Beispielapplikationen in jeweils eigenen Verzeichnissen. In deren Unterverzeichnis „src“ befindet sich der jeweilige Quellcode. Er besteht aus einigen XML- und HTML-Dateien sowie statischen Ressourcen und normalem Java-Quellcode, den Sie im Grunde in jedem beliebigen Texteditor öffnen und modifizieren können. Die Quellcodes sind in Paketstrukturen eingebettet. Das Paket „client“ enthält dabei nach den offiziellen Google-Projektregeln immer den Java-Code zur Erzeugung der clientseitigen Strukturen einer Ajax-Applikation.

Öffnet man das Beispiel „Hello“ und lädt die Datei „Hello.java“ in einen Editor, kann man sich mit einigen Java-Grundkenntnissen sofort zurechtfinden. Ohne hier weiter darauf einzugehen, ist wahrscheinlich klar, was die Methode „onModule-Load()“ macht: Wenn das Modul geladen wird, wird der darin notierte Code ausgeführt. Es ist mit etwas Java-Erfahrung eine einfache Übung, in der Methode zu erkennen, dass eine Schaltfläche mit einer bestimmten Beschriftung generiert wird. Die Beschriftung lässt sich auch ohne genaue Kenntnisse vom GWT jederzeit ändern. Ebenfalls nachvollziehbar ist, was aufgrund von „Window.alert()“ geschieht.

Anzeige
Anzeige

Um eigene Änderungen wirksam werden zu lassen, muss nichts weiter getan werden, als die Beispielapplikation nach dem Speichern erneut im Hosted Modus laufen zu lassen. Oder aber sie wird mit dem Compiler vollständig übersetzt und im Web Modus ausgeführt.

Fazit

Es gibt definitiv konzeptionelle Vorteile von Java gegenüber JavaScript. So verfügt Java über feste Datentypen, ein ausgefeiltes Speichermanagement, strikte Objektorientierung, ein sehr sicheres und zuverlässiges Exception-Handling und einiges mehr. Und obwohl weder HTML noch JavaScript und CSS als Einzeltechnologien
sonderlich anspruchsvoll sind, erfordert das Gemisch aus JavaScript,
CSS und HTML im Allgemeinen viel Erfahrung. Das betrifft sowohl ihr
Zusammenspiel als auch vor allem die extrem diffizilen
Verhaltensweisen verschiedener Browser und Plattformkonstellationen. Aus der Verwendung der Sprache Java heraus ergeben sich auch Vorteile
für das Design, was in Java viel leichter verständlich ist als eines aus HTML, CSS und JavaScript. Das gilt vor allem, wenn keine
ausführliche Dokumentation zur Verfügung steht. Man sollte auch
nicht außer Acht lassen, dass es insbesondere für JavaScript nur wenige
gute Entwicklungsumgebungen gibt. Für Java hingegen gibt es einen
großen Fundus an sehr professionellen Entwicklungstools, die vom
Debuggen über das Refactoring bis zur Komplettierung von Code alle
Möglichkeiten bieten, die man in der professionellen Entwicklung
gewohnt ist.

Die entscheidenden Stärken des GWT gegenüber der händischen Erstellung
zeigen sich vor allem bei komplexen Ajax-Applikationen, die von Grund
auf neu erzeugt werden.
Und schließlich hat es für geübte Java-Programmierer auch seinen Reiz, eine Webapplikation (gleich, ob mit oder ohne Ajax) wie eine Desktopapplikation im Java-Umfeld zu erstellen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige