Java View-Technologien und Frameworks - Java view technologies and frameworks

Java View-Technologien und -Frameworks sind webbasierte Softwarebibliotheken , die die Benutzeroberfläche oder " Ansichtsebene " von Java- Webanwendungen bereitstellen . Solche Anwendungsframeworks werden zum Definieren von Webseiten und zum Behandeln der von diesen Webseiten generierten HTTP- Anforderungen (Klicks) verwendet. Als Unterkategorie von Webframeworks überschneiden sich Frameworks auf Ansichtsebene häufig in unterschiedlichem Maße mit Webframeworks, die andere Funktionen für Java-Webanwendungen bereitstellen.

Java-Frameworks auf Ansichtsebene behaupten häufig, einige oder alle Entwurfsmuster für Modellansicht-Controller zu unterstützen.

Auf einen Blick

Aktionsbasierte Frameworks: Apache Struts , Spring MVC
Komponentenbasierte Frameworks: Apache Click , Apache Tapisserie , Apache Wicket , JavaServer Faces
Web Template Systeme: Apache Tiles , SiteMesh , Thymeleaf

Servlet-API

Die Servlet-API ist die Grundlage für fast alle Java Web View-Technologien. Servlet bietet den grundlegenden Mechanismus zum Schreiben von Java- Klassen für Webanwendungen. Servlets können auf HTTP-Anfragen antworten, Cookies erstellen und Sitzungen verwalten.

JavaServer Pages (JSP)

  • JSP basiert auf der Servlet-API und bietet ein dokumentenzentriertes, tagbasiertes Vorlagen- und Serverprogrammierungsmodell, mit dem viele Arten von Textinhalten generiert werden können.
  • Java-Code kann in JSP-Dateien eingebettet sein und wird kompiliert und ausgeführt, wenn eine Anforderung empfangen wird.

Apache Struts

  • Struts sorgt für eine Entkopplung von Controller und View.
  • Anforderungen werden von einer Java-Klasse (Controller) empfangen, die entscheiden kann, welche Ansicht angezeigt werden soll.
  • Die eigentliche Ansicht kann in verschiedenen Ansichtstechnologien wie JSP, freier Markierungsvorlage, Geschwindigkeitsvorlage usw. geschrieben werden.
  • Eine XML- Konfigurationsdatei wird verwendet, um die "Seitennavigation" anzugeben, dh den Ablauf der Anforderung an den entsprechenden Controller, und welche Ansicht basierend auf dem Ergebnis des Controllers angezeigt werden soll.
  • Konkurrent : Spring MVC, Grails

Apache Tapisserie

  • Ein komponentenbasiertes Ansichtsframework.
  • Klassen werden als POJOs geschrieben und der Bytecode zur Laufzeit transformiert
  • Konfiguriert mit Anmerkungen und Namenskonventionen anstelle von XML
  • Erzwingt im Vergleich zu JSPs eine klare Trennung von HTML-Markup und Java-Code.
  • HTML-Vorlagen können von Webdesignern direkt in der Vorschau angezeigt werden
  • Geänderte Komponentenklassen werden zur schnelleren Entwicklung live in die laufende Anwendung geladen.
  • Verwendet das Navigationsmuster Post / Redirect / Get für die Formularübermittlung.
  • Wettbewerber : Wicket, JSF, HybridJava

Apache Wicket

  • Ein komponentenbasiertes Ansichtsframework.
  • Seiten interagieren direkt mit zustandsbehafteten Java-Komponenten auf dem Server.
  • Komponenten und ihr Status werden vom Wicket-Framework verwaltet, sodass der Anwendungsentwickler HttpSession nicht direkt zum Verwalten des Status verwenden muss.
  • Benötigt kein XML für die Konfiguration.
  • Erzwingt im Vergleich zu JSPs eine klare Trennung von HTML-Markup und Java-Code.
  • Webseitenkomponenten werden aus dem Code in das HTML-Markup 'verschoben'.
  • Konkurrent : Tapisserie, JSF, HybridJava

JavaServer Faces (JSF) und Facelets

  • Eine Spezifikation für komponentenbasierte Ansichtsframeworks.
  • Mojarra- und Apache MyFaces-Implementierungen sind verfügbar
  • Verwendet normalerweise Facelets für XML / XHTML-basiertes Templating.
  • Klassen werden als POJOs geschrieben, wobei Anmerkungen oder XML-Konfigurationsdateien verwendet werden, um sie Seiten- und Komponentenvorlagen zuzuordnen.
  • Die Unified Expression Language ermöglicht das Binden von Komponentenfeldern und Ereignissen an POJO-Bean-Eigenschaften und -Methoden.
  • Konvertierungs- und Validierungsbeschränkungen können in Facelets angegeben werden und werden automatisch angewendet. Dies führt normalerweise dazu, dass dieselbe Seite im Fehlerfall erneut veröffentlicht wird.
  • Die Navigation kann über Konfigurationsdateiregeln erfolgen oder direkt auf der Seite angegeben werden.
  • Kann Ajax transparent unterstützen .
  • Konkurrent : Wicket, Tapisserie

SiteMesh

  • SiteMesh ist ein HTML-Vorlagen-Framework, das auf dem Modell "Dekoration" basiert.
  • Es ermöglicht die Erstellung einer 'Dekorations'-Vorlage, die dann auf jeden anderen HTML-Code angewendet wird, um einen neuen HTML-Code zu generieren.
  • Der neu generierte HTML-Code enthält Elemente aus dem ursprünglichen HTML-Code, die in die Vorlage eingefügt wurden.
  • Dies ermöglicht, dass der ursprüngliche HTML-Code sehr einfach ist und keine Formatierungs- oder Layoutspezifikationen enthält. Die Vorlage enthält wiederum keine tatsächlichen Informationen.
  • Die zwei Blending ermöglicht einen konsistenten Look and Feel für alle Web - Seiten .
  • Wettbewerber : Fliesen

Funke

  • Funken Sie ein Micro-Web-Framework, das auf einem einfachen Routing-System basiert
  • Es wird standardmäßig auf einem eingebetteten Jetty -Webserver ausgeführt, kann jedoch so konfiguriert werden, dass es auf anderen Webservern ausgeführt wird.
  • Es unterstützt drei verschiedene Vorlagen-Engines: Velocity , FreeMarker und Moustache
  • Es soll eine schnelle Entwicklung ermöglichen und verwendet keine Anmerkungen oder proprietären Lösungen.


Siehe auch