Struts, Spring MVC, JavaServer Faces, Vaadin

Was Java-Web-Frameworks leisten

Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com
Java-Web-Frameworks versprechen, die Entwicklung von Web-Anwendungen zu beschleunigen. Waren solche Frameworks in der Java-Anfangszeit Mangelware, ist die Vielfalt heute fast unüberschaubar. Dieser Beitrag vergleicht vier quelloffene Web-Frameworks für Java.

Die Java-Technologie war von Beginn an eng mit dem Internet verknüpft. Das ist vor allem Java-Applets zu verdanken. Diese Miniprogramme werden einfach in eine HTML-Seite eingebettet und können so von Internet-Browsern direkt ausgeführt werden. So einfach und problemlos sich dies zunächst anhört, birgt die Applet-Technologie eine ganze Reihe von Tücken wie lange Lade- und Initialisierungszeiten sowie Problemen mit Firewalls - Gründe, warum man heute fast nur noch von Servlets im Zusammenhang mit Java-Web-Anwendungen spricht.

Foto: Bernhard Steppan

Java-Servlets wurde von Sun Microsystems Mitte 1997 eingeführt (Siehe Abbildung oben). Mit dieser Java-API lassen sich Java-Webanwendungen mit einer dynamischen HTML-GUI entwickeln. Bevor die ersten Web-Frameworks auf Servlet-Basis entstanden, übernahmen Servlets sowohl die Präsentation als auch die Steuerung innerhalb von Java-Web-Anwendungen. Das war nicht nur sehr unproduktiv, sondern führte auch zu schwer wartbaren Anwendungen. Abhilfe schafften die 1999 vorgestellten JavaServer Pages (JSPs). Mit JavaServer Pages konnte Präsentation und Logik sauber getrennt werden.

Foto: Bernhard Steppan

Die Arbeitsteilung zwischen Servlet und JSP funktioniert so, dass das Servlet ausschließlich für die Steuerung (Controller) der Web-Anwendungen zuständig ist, während JSPs die Präsentation (Views) übernehmen. Zusammen mit Klassen für die Datenhaltung und Geschäftslogik entsteht eine Model-View-Controller-Architektur (Siehe Abbildung unten). Eine Web-Anwendungen auf dieser Basis ohne ein Web-Framework zu entwickeln, ist zwar möglich, aber für größere Anwendungen zu aufwändig. Um die Entwicklung von Web-Anwendungen zu erleichtern, sind im Lauf der Jahre viele Java-Web-Frameworks entstanden.

Folgende vier Produkte beziehungsweise Spezifikationen werden vergleichen

Struts 2

Spring MVC

JavaServer Faces

Vaadin

Zur Startseite