© Excellent backgrounds/Shutterstock.com
Java Magazin
Ein erster Blick auf MVC (JSR 371)

Was lange währt …

Mit Java EE 8 erhält die Plattform ein neues Webframework. Im Unterschied zu den JavaServer Faces (JSF) wird dieses nicht komponenten-, sondern actionbasiert sein. Eine Entscheidung, die durchaus kontrovers diskutiert wird. Während manche Entwickler eine jahrelange Hoffnung endlich erfüllt sehen, halten andere diesen Schritt für unnötig. Dieser Artikel bietet einen Einstieg in die Thematik, skizziert Gründe für die Entscheidung und wirft einen ersten Blick auf die neue Spezifikation, die stark an JAX-RS angelehnt ist.

Thilo Frotscher


Video: The Enterprise Architect - Ivory Tower Resident or Corporate Savior?

Das Model View Controller Pattern (MVC) ist den allermeisten Entwicklern sicherlich bestens bekannt. Das Pattern hat sich unter anderem als bewährtes Mittel zur Implementierung von Webanwendungen in der Breite durchgesetzt. Neben einer Vielzahl von Java-Webframeworks setzen auch zahlreiche Frameworks anderer Programmiersprachen auf diesen Ansatz.

Für Java ist über die Jahre eine große Vielzahl an MVC-basierten Webframeworks entstanden. Bereits vor zehn Jahren stellte es eine gewisse Herausforderung dar, zu Beginn eines neuen Projekts ein geeignetes Webframework auszuwählen. Zu groß war schon damals die Fülle der Alternativen, um eine gesicherte Aussage treffen zu können, welches Framework die Projektanforderungen am besten erfüllen würde. So entstanden Kriterienkataloge, Artikel und Präsentationen, die dabei helfen sollten, die Frameworks miteinander zu vergleichen und ihre Vor- und Nachteile gegeneinander abzuwägen.

Bei aller Vielfalt haben sich gleichzeitig zwei unterschiedliche Ansätze für die Umsetzung des MVC-Patterns etabliert, in die sich die meisten Java-Webframeworks einteilen lassen. Diese werden gemeinhin als actionbasierte (oder Request-basierte) und komponentenbasierte Webframeworks bezeichnet. Indem man sich zunächst für einen dieser beiden Ansätze entscheidet, kann man die Menge der zur Wahl stehenden Frameworks immerhin schon einmal deutlich reduzieren. Nun muss man sich nur noch innerhalb der gewählten Kategorie entscheiden. Zu den bekanntesten Beispielen der actionbasierten Frameworks zählen Struts und Spring MVC. Populäre Vertreter des komponentenbasierten Ansatzes sind beispielsweise JavaServer Faces und Wicket.

Die beiden Ansätze unterscheiden sich ganz wesentlich. Bei actionbasierten Frameworks dreht sich für den Entwickler alles um eingehende Requests, die vom Framework an so genannte Actions geleitet werden. Eine Action behandelt den Request, aktualisiert gegebenenfalls das Modell und leitet schließlich an eine resultierende View weiter. Die Parameter des Requests müssen manuell verarbeitet werden, und Entwickler sind auch für die Erstellung von HTML, CSS und JavaScript selbst verantwortlich. Weiterhin gibt es typischerweise keine automatische Validierung und keine automatische Umwandlung von Eingabedaten. Je nach verwendetem Framework können Einzelheiten natürlich abweichen.

Komponentenbasierte Frameworks fokussieren sich dagegen auf eine komplette We...

Java Magazin
Ein erster Blick auf MVC (JSR 371)

Was lange währt …

Mit Java EE 8 erhält die Plattform ein neues Webframework. Im Unterschied zu den JavaServer Faces (JSF) wird dieses nicht komponenten-, sondern actionbasiert sein. Eine Entscheidung, die durchaus kontrovers diskutiert wird. Während manche Entwickler eine jahrelange Hoffnung endlich erfüllt sehen, halten andere diesen Schritt für unnötig. Dieser Artikel bietet einen Einstieg in die Thematik, skizziert Gründe für die Entscheidung und wirft einen ersten Blick auf die neue Spezifikation, die stark an JAX-RS angelehnt ist.

Thilo Frotscher


Video: The Enterprise Architect - Ivory Tower Resident or Corporate Savior?

Das Model View Controller Pattern (MVC) ist den allermeisten Entwicklern sicherlich bestens bekannt. Das Pattern hat sich unter anderem als bewährtes Mittel zur Implementierung von Webanwendungen in der Breite durchgesetzt. Neben einer Vielzahl von Java-Webframeworks setzen auch zahlreiche Frameworks anderer Programmiersprachen auf diesen Ansatz.

Für Java ist über die Jahre eine große Vielzahl an MVC-basierten Webframeworks entstanden. Bereits vor zehn Jahren stellte es eine gewisse Herausforderung dar, zu Beginn eines neuen Projekts ein geeignetes Webframework auszuwählen. Zu groß war schon damals die Fülle der Alternativen, um eine gesicherte Aussage treffen zu können, welches Framework die Projektanforderungen am besten erfüllen würde. So entstanden Kriterienkataloge, Artikel und Präsentationen, die dabei helfen sollten, die Frameworks miteinander zu vergleichen und ihre Vor- und Nachteile gegeneinander abzuwägen.

Bei aller Vielfalt haben sich gleichzeitig zwei unterschiedliche Ansätze für die Umsetzung des MVC-Patterns etabliert, in die sich die meisten Java-Webframeworks einteilen lassen. Diese werden gemeinhin als actionbasierte (oder Request-basierte) und komponentenbasierte Webframeworks bezeichnet. Indem man sich zunächst für einen dieser beiden Ansätze entscheidet, kann man die Menge der zur Wahl stehenden Frameworks immerhin schon einmal deutlich reduzieren. Nun muss man sich nur noch innerhalb der gewählten Kategorie entscheiden. Zu den bekanntesten Beispielen der actionbasierten Frameworks zählen Struts und Spring MVC. Populäre Vertreter des komponentenbasierten Ansatzes sind beispielsweise JavaServer Faces und Wicket.

Die beiden Ansätze unterscheiden sich ganz wesentlich. Bei actionbasierten Frameworks dreht sich für den Entwickler alles um eingehende Requests, die vom Framework an so genannte Actions geleitet werden. Eine Action behandelt den Request, aktualisiert gegebenenfalls das Modell und leitet schließlich an eine resultierende View weiter. Die Parameter des Requests müssen manuell verarbeitet werden, und Entwickler sind auch für die Erstellung von HTML, CSS und JavaScript selbst verantwortlich. Weiterhin gibt es typischerweise keine automatische Validierung und keine automatische Umwandlung von Eingabedaten. Je nach verwendetem Framework können Einzelheiten natürlich abweichen.

Komponentenbasierte Frameworks fokussieren sich dagegen auf eine komplette We...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang