<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Model_2</id>
	<title>Model 2 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Model_2"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Model_2&amp;action=history"/>
	<updated>2026-05-21T13:18:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Model_2&amp;diff=2759981&amp;oldid=prev</id>
		<title>imported&gt;Aka: typografische Anführungszeichen, bereits in Unterkategorie „Entwurfsmuster“ enthalten, Leerzeichen in Überschrift, deutsch, Links optimiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Model_2&amp;diff=2759981&amp;oldid=prev"/>
		<updated>2023-04-07T22:20:50Z</updated>

		<summary type="html">&lt;p&gt;typografische Anführungszeichen, bereits in Unterkategorie „Entwurfsmuster“ enthalten, Leerzeichen in Überschrift, deutsch, Links optimiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Dieser Artikel|behandelt das Entwurfsmuster. Zum Flugauto &amp;#039;&amp;#039;Model II&amp;#039;&amp;#039; siehe [[Aerocar Incorporated]].}}&lt;br /&gt;
[[Datei:JSP Model 2.svg|mini|alt=Das Diagramm einer Model 2 Implementierung.|Ein vereinfachtes Diagramm des Model 2 Musters.]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Model 2&amp;#039;&amp;#039;&amp;#039; ist ein komplexes [[Entwurfsmuster]] zur Trennung von Anzeige (Darstellung von Inhalten) und Logik (Bezug und Manipulation dieser Inhalte) bei [[Java (Programmiersprache)|Java]]-[[Webanwendung]]en. Daher wird es üblicherweise mit [[Model View Controller|MVC]] assoziiert. Obwohl die genaue Ausgestaltung von MVC nie für Model 2 spezifiziert wurde, empfehlen eine Reihe von Veröffentlichungen eine formalisierte Schicht, die den MVC-Model-Code enthält. Beispielsweise haben die Java BluePrints ursprünglich die Verwendung von [[Enterprise JavaBeans|EJBs]] empfohlen, um das MVC-Model zu kapseln.&lt;br /&gt;
&lt;br /&gt;
In einer Model 2 Anwendung werden Anfragen vom [[Client]]-[[Webbrowser|Browser]] zum Controller geleitet. Der Controller führt die Logik aus, die zur Beschaffung des Inhalts für die Darstellung notwendig ist. Dann legt er diesen Inhalt in der Anfrage ab (üblicherweise als [[JavaBeans|JavaBean]] oder [[Plain Old Java Object|POJO]]) und entscheidet, welcher View er die Anfrage überreicht. Die View stellt dann den Inhalt dar, der vom Controller überreicht wurde.&lt;br /&gt;
&lt;br /&gt;
Model 2 wird für mittlere und große Anwendungen empfohlen.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
&lt;br /&gt;
1998 veröffentlichte die [[Sun Microsystems]] eine Vorabversion der [[JavaServer Pages|JSP]]-Spezifikation, Version 0.92.&amp;lt;ref&amp;gt;[http://www.kirkdorffer.com/jspspecs/jsp092.html#model JSP 0.92 Specification]&amp;lt;/ref&amp;gt; Darin werden zwei Methoden aufgeführt, mit denen JSP-Seiten benutzt werden können. Das erste Modell („Model 1“ der Reihenfolge im Dokument nach) war simpel, JSP-Seiten waren eigenständige Entitäten. Logik konnte in der Seite selbst enthalten sein, die Navigation zwischen den Seiten wurde üblicherweise durch [[Hyperlink]]s verwirklicht. [[ColdFusion]] und [[Active Server Pages]] sind Beispiele zeitgenössischer Technologien, welche dieses Modell implementierten.&lt;br /&gt;
&lt;br /&gt;
Das zweite Modell (Model 2 der Reihenfolge nach) war eine verbesserte Methode, die [[Servlet]]- mit JSP-Technologie kombiniert. Der aufgeführte Unterschied war, dass ein Servlet die Anfrage abfangen, den darzustellenden Inhalt in einen Parameter (üblicherweise ein JavaBean) packen, und schließlich eine JSP aufrufen würde, um den Inhalt im gewünschten Ausgabeformat darzustellen. Dieses Modell unterschied sich vom vorherigen in der Tatsache, dass JSP-Technologie als reine [[Template-Engine]] benutzt wurde. Alle Logik war in einem Servlet abgetrennt, sodass die alleinige Aufgabe der JSP es war, den bereitgestellten Inhalt zu [[HTML-Rendering|rendern]].&lt;br /&gt;
&lt;br /&gt;
1999 gelang Govind Seshadri die Formalisierung des Begriffs Model 2 als MVC-[[Architekturmuster]] für Webanwendungen, statt einer von zwei Optionen.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html |wayback=20131104190119 |text=&amp;#039;&amp;#039;Understanding JavaServer Pages Model 2 architecture&amp;#039;&amp;#039; by Govind Seshadri (JavaWorld) |archiv-bot=2022-12-16 19:31:35 InternetArchiveBot }}&amp;lt;/ref&amp;gt; Angesichts der Verlagerung der Logik aus der JSP in ein Servlet könnten diese beiden als View und Controller einer MVC-Architektur betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
Im März 2000 wurde [[Struts|Apache Struts]] veröffentlicht. Dieses Projekt formalisierte die Trennung zwischen View und Controller und behauptete, eine Implementierung des Model-2-Musters zu sein.&amp;lt;ref name=&amp;quot;strutsModel2&amp;quot;&amp;gt;[http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/chap2_0672324725.pdf How Struts Implements Model 2 (The Origins of Model 1/Model 2)] (PDF; 745&amp;amp;nbsp;kB)&amp;lt;/ref&amp;gt; Abermals war die Implementierung des „Model“ undefiniert geblieben mit der Erwartung, dass Entwickler es mit einer angemessenen Lösung füllen würden. Datenbankinteraktion via [[Java Database Connectivity|JDBC]] und EJBs waren eine Option, die auf der Struts-Homepage vorgeschlagen wurde. Später wurden als modernere Optionen [[Hibernate (Framework)|Hibernate]], [[myBatis|iBATIS]] und Apache OJB für das Modell aufgelistet.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://struts.apache.org/1.x/ |wayback=20100923130649 |text=Struts 1.x Homepage |archiv-bot=2019-05-02 02:40:55 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seit der Veröffentlichung von Struts sind etliche konkurrierende Frameworks erschienen. Viele davon behaupten ebenfalls, dass sie Model 2 und MVC implementieren. Das Ergebnis ist, dass die beiden Begriffe synonym von Entwicklern benutzt werden, was zur Bezeichnung „MVC Model 2“ oder „MVC2“ geführt hat.&lt;br /&gt;
&lt;br /&gt;
== Missverständnisse ==&lt;br /&gt;
&lt;br /&gt;
Ein übliches Missverständnis ist, dass ein formalisiertes MVC-Muster Voraussetzung für eine Model 2 Implementierung ist. Allerdings warnen die Java BluePrints speziell vor dieser Interpretation:&amp;lt;ref&amp;gt;[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html#1078527 Java BluePrints 4.4.1: Structuring the Web Tier]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The literature on Web-tier technology in the J2EE platform frequently uses the terms „Model 1“ and „Model 2“ without explanation. This terminology stems from early drafts of the JSP specification, which described two basic usage patterns for JSP pages. While the terms have disappeared from the specification document, they remain in common use. Model 1 and Model 2 simply refer to the absence or presence (respectively) of a controller servlet that dispatches requests from the client tier and selects views.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In deutscher Übersetzung:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Die Literatur über Web-Tier-Technologie für die J2EE-Plattform benutzt häufig die Begriffe „Model 1“ und „Model 2“ ohne Erklärung. Diese Technologie stammt von frühen Entwürfen der JSP-Spezifikation, welche zwei grundlegende Gebrauchsmuster für JSP-Seiten beschreibt. Obwohl die Begriffe vom Spezifikationsdokument verschwunden sind, verbleiben sie geläufig. Model 1 und Model 2 beziehen sich schlicht auf die Abwesenheit bzw. Präsenz eines Controller-Servlets, das Anfragen vom Client-Tier sendet und Views auswählt.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des Weiteren hat der Begriff „MVC2“ zum Irrglauben geführt, dass Model 2 die nächste Generation von MVC ist. Tatsächlich ist MVC2 nur eine Abkürzung von „MVC Model 2“.&amp;lt;ref&amp;gt;[http://www.ibm.com/developerworks/library/j-struts/#h4 Struts, an open-source MVC implementation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Struts|Apache Struts]] ermöglicht Webanwendungen basierend auf einer Model 2 Architektur.&lt;br /&gt;
* [[JavaServer Faces]] ist ebenfalls eine Ausprägung der Model 2 Architektur.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.jsptutorial.org/content/architecture#innerLink5 |wayback=20120622232617 |text=Archivierte Kopie |archiv-bot=2019-05-02 02:40:55 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://glossar.hs-augsburg.de/Model-View-Controller-Paradigma#CVM-Prozess.2C_Model_2 &amp;#039;&amp;#039;Model 2&amp;#039;&amp;#039; im GlossarWiki der Hochschule Augsburg]&lt;br /&gt;
* [http://openbook.galileocomputing.de/oo/oo_06_moduleundarchitektur_001.htm#Rxxob06moduleundarchitektur001040015ff1f012176 &amp;#039;&amp;#039;Model 2&amp;#039;&amp;#039; im Praxisbuch Objektorientierung von Galileo Press]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwurfsmuster]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>