89
JEE – Was ist das? 12.03.07 Page 1 TietoEnator © 2005 JEE – Was ist das? Montagsreihe, 12.03.2007

Introduction to JEE

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 1TietoEnator © 2005

JEE – Was ist das?Montagsreihe, 12.03.2007

Page 2: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Agenda – Teil 1 Java Plattform

Standard Edition

Enterprise Edition

– Mehrschicht-Architekturen

– Web-Container Servlets JavaServer Pages Tag-Libraries Struts JavaServer Faces Andere Frameworks

Page 3: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Agenda – Teil 2

– EJB-Container

Frank Ilchmann

Page 4: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 4TietoEnator © 2005

JEE – Was ist das?Java Platform

Page 5: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 5TietoEnator © 2005

Java Platform

“The Java platform is the name for a bundle of related Programs … from Sun Microsystems which allow for developing and running programs written in the Java programming language.“

– http://en.wikipedia.org/wiki/Java_platform Die Java Platform ist ein Sammelbegriff von Sun für:

– die Programmiersprache Java– einer Vielzahl standardisierter APIs sowie deren Implementierung

in umfangreichen Klassenbibliotheken– einer Reihe von Programmen, wie Compiler, Virtueller Maschine,

u.ä.– …

Page 6: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 6TietoEnator © 2005

Java Platform Editions (1)

Standard Edition Enterprise Edition Micro Edition

– http://java.sun.com/

Page 7: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 7TietoEnator © 2005

Java Platform Editions (2)

“… Standard Edition … lets you develop and deploy Java applications on desktops and servers, as well as today's demanding Embedded and Real-Time environments. Java SE includes classes that support the development of Java Web Service and provides the foundation for Java Platform, Enterprise Edition (Java EE).”

– http://java.sun.com/javase “… Enterprise Edition … is the industry standard for developing

portable, robust, scalable and secure server-side Java applications. Building on the solid foundation of Java SE, Java EE provides web services, component model, management, and communications APIs that make it the industry standard for implementing enterprise class service-oriented architecture (SOA) and next generation web applications.”

– http://java.sun.com/javaee

Page 8: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 8TietoEnator © 2005

Java Platform Editions (3)

„… Micro Edition … is the most ubiquitous application platform for mobile devices across... It provides a robust, flexible environment for applications running on a broad range of other embedded devices, such as mobile phones, PDAs, TV set-top boxes, and printers. The Java ME platform includes … a broad range of built-in network protocols, and extensive support for networked and offline applications .. Applications based on Java ME software are portable across a wide range of devices, yet leveraging each device's native capabilities.”

– http://java.sun.com/javame/index.jsp

2004 lag die Zahl der Handys mit Java-Unterstützung bei 1,5 Milliarden, Schätzungen für 2006 gehen von 2,5 Milliarden Geräten aus

– http://www.java-tutor.com/seminare/java-schulung/j2me-seminar.html Auf Java ME wird hier nicht weiter eingegangen.

Page 9: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 9TietoEnator © 2005

History of Product Naming (1)

Dec.1999Java 2 EE,

J2EE

Java 2 Platform, Enterprise Edition 1.0

20001.2

Aug.20011.3

Nov.20031.4

May 2006Java EE,

JEE

Java Platform, Enterprise Edition

5Enterprise

1996 (1.0)JavaJava1.0 .. 1.1.x

J2SEJava 2 Platform, Standard Edition1.2 .. 1.4.2

Sept.20045

Dec.2006Java SE,

JSE

Java Platform, Standard Edition6Standard

YearAbbr.NamingVersionEdition

Page 10: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 10TietoEnator © 2005

History of Product Naming (2)

History of naming scheme:– http://de.wikipedia.org/wiki/Java_Platform,_Standard_Edition– http://de.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition

Motivation for changing naming scheme:– http://java.sun.com/developer/technicalArticles/JavaOne2005/

java_naming_aag.pdf

Page 11: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 11TietoEnator © 2005

Product- and Developer version

The version numbers 6 and 1.6.0 are used to identify this release of the Java Platform.

Version 6 is the product version, while 1.6.0 is the developer version.

Sun: “The number 6 is used to reflect the evolving level of maturity, stability, scalability and security of Java SE.”

http://java.sun.com/javase/6/webnotes/version-6.html

Page 12: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 12TietoEnator © 2005

JEE – Was ist das?Standard Edition

Page 13: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 13TietoEnator © 2005

Java SE 6 Platform at a Glance

Page 14: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 14TietoEnator © 2005

JRE and JDK

“Sun Microsystems provides two principal software products in the Java Platform, Standard Edition (Java SE) family”:

Java SE Runtime Environment (JRE) Java SE Development Kit (JDK) http://java.sun.com/javase/6/docs/technotes/guides/index.html

Page 15: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 15TietoEnator © 2005

Java SE Runtime Environment (JRE)

Java ist ein Zwitter zwischen Compiler- und Interpretersprache:– Quellcode wird vom Compiler in einen plattformunabhängigen

Bytecode übersetzt.– Bytecode wird von einem plattformabhängigen Interpreter, der

Java Virtual Machine (JVM), ausgeführt.– Sun-Slogan: „Write once run anywhere.“

Java-Programme sind keine echten Executables, sondern nur in einer „Virtuellen Maschine“ lauffähig, die den vom Compiler erzeugten Bytecode interpretiert.

“The JRE provides the libraries, Java virtual machine, and other components necessary for you to run applets and applications written in the Java programming language. This runtime environment can be redistributed with applications to make them free-standing.”

Page 16: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 16TietoEnator © 2005

Java SE Development Kit (JDK)

“The JDK includes the JRE plus command-line development tools such as compilers and debuggers that are necessary or useful for developing applets and applications.”

Page 17: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 17TietoEnator © 2005

Java Language - Eigenschaften

Allzweck-Sprache, die nicht auf bestimmte Einsatzgebiete beschränkt ist.

Stark objektorientiert. Streng typisierend.

– Aufwertung ab Java 5 durch Einführung von „Generics“. Multithreading-fähig. Exception-Handling. Pragmatisches „Sprachdesign“. … ORDiX: „Mit Java ist Programmentwicklung nach dem Stand der

Technik möglich.“

Page 18: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 18TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Page 19: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 19TietoEnator © 2005

JEE-Spezifikation

JEE ist eine Spezifikation für eine Softwarearchitektur zur transaktionsbasierten Ausführung von in Java programmierten Anwendungen

Salopp: “JEE ist Java auf Serverseite für Unternehmensanwendungen.”. JEE basiert auf der Java Platform, Standard Edition (Java SE). Definiert Softwarekomponenten und Dienste, die primär in der

Programmiersprache Java erstellt werden. Stellt einen allgemein akzeptierten Rahmen zur Verfügung, auf dessen Basis

aus modularen Komponenten verteilte, mehrschichtige Anwendungen entwickelt werden können.

Klar definierte Schnittstellen zwischen den Komponenten und Schichten sollen dafür sorgen, dass Softwarekomponenten unterschiedlicher Hersteller interoperabel sind und dass die verteilte Anwendung gut skalierbar ist.

JEE ist kein Produkt und oder fertiges System. Die aktuelle Version der JEE-Spezifikation ist die Version 5.0.

– http://java.sun.com/javaee/technologies/javaee5.jsp

Page 20: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 20TietoEnator © 2005

Application-Server (1)

Implementierungen der JEE-Spezifikation heißen Application-Server (Anwendungsserver, JEE-Server).

Bietet eine Laufzeitumgebung für den Server-Teil einer Client-Server Anwendung.

Hersteller können sich von SUN ihre Konformität zur JEE-Spezifikation bestätigen lassen.

– „The J2EE Compatibility Test Suite (CTS) is available for the J2EE platform. The J2EE CTS contains over 5,000 tests for J2EE 1.4 and will contain more for later versions. This test suite tests compatibility by performing specific application functions and checking results. For example,...“

– “Look for the J2EE brand which signifies that the specific branded product has passed the Compatibility Test Suite (CTS) and is compatible.”

– http://java.sun.com/javaee/overview/faq/j2ee.jsp#compatibility

Page 21: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 21TietoEnator © 2005

Application Server (2)

Wichtigste Aufgaben eine Application-Servers:– Thread- und Prozeßmanagement– Unterstützung von Clustering (Verbindung mehrerer Instanzen

eines JEE-Servers auf einem oder mehreren Rechnern)– Gleichmäßige Verteilung von Anfragen and verschiedene JEE-

Server-Instanzen– Verwaltung von Systemresource (CPU, Speicher)– Verwaltung und Überprüfung von Sicherheitsanforderungen– Integration von Middleware-Diensten (Messaging-, Namens-,

Verzeichnisdienst)

Page 22: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 22TietoEnator © 2005

Application Server (3)

Anbieter für Application-Server gibt es wie Sand am Meer. Den besten Application-Server gibt es nicht. Einige (populäre) Application-Server:

Geronimo (Apache)Application Server 10g (Oracle)

JOnAS (ObjectWeb)Websphere (IBM)

JBoss (JBoss)Enterprise Server (Borland)

Java System Application Server bzw. Glassfish (SUN, Referenzimpl.d.JEE-Spez.)

WebLogic (BEA)

freikommerziell

Page 23: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 23TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Mehrschicht-Architekturen

Page 24: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 24TietoEnator © 2005

Schichtenmodelle

Je nach dem wie und wo Darstellung, Logik und Datenhaltung einer Anwendung implementiert sind, unterscheidet man zwischen:

– Zwei-Schichten-Modell– Drei-Schichten-Modell– Vier-Schichten-Modell

Sonderfall:– Zweieinhalb-Schichten-Modell

Begriff:– Schicht = tier– Mehrschicht-Modell = multitier model

Page 25: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 25TietoEnator © 2005

Zwei-Schichten-Modell (Allgemein)

Vorteile:– Einfach.– Datenbank verwaltet gleichzeitigen Zugriff

mehrerer Benutzer. Nachteile:

– Änderung der Geschäftslogik erfodert Neuinstallation aller Clients.

– Jeder Client benötigt eigene Datenbank-Anbindung.

– Bei „unsauberer“ Programmierung verschmelzen Präsentations- und Geschätslogik.

Beispiel:– Java-Programm mit Swing-Oberfläche und

Datenbankanbindung über JDBC.

Page 26: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 26TietoEnator © 2005

Drei-Schichten-Modell (Allgemein)

Vorteile:– Präsentations- und Geschäftslogik getrennt.– Application-Server verwaltet Datenbank-

Zugriffe. Nachteile:

– Weiterhin Client-Installation notwendig.– Geschäftslogik muss gleichzeitig Anfrage

mehrerer Clients bearbeiten.– Aufwändige Programmierung (Multi-

Threading, Multi-User). Beispiel:

– Java-Client mit Swing-Oberfläche, C++-Server, embedded SQL und CORBA zur Client-Server-Kommunikation.

Page 27: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 27TietoEnator © 2005

Vier-Schichten-Modell (Allgemein)

Vorteile:– Keine Client-Installation (nur

Browser).– Änderungen zentral auf dem

Application-Server.– Präsentations- und Geschäftslogik

getrennt. Nachteile:

– Präsentations- und Geschäftslogik müssen gleichzeitig mehrere Anfragen bearbeiten.

– Aufwändige Programmierung (Multi-Threading, Multi-User).

– Eingeschränkter Benutzerkomfort durch Browser.

Page 28: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 28TietoEnator © 2005

Umsetzung der Schichten-Modelle in die JEE-Architektur (Einführung JEE-Terminologie)

EIS ClientApplication

Client Web Client Web Client

Java Server Page (JSP)/Servlet

EJB

EISEISEISEnterpriseInformation

System (EIS)

JSP/Servlet

2-Schichten-Architektur

3-Schichten-Architektur

2 ½ -Schichten-Architektur

4-Schichten-Architektur

Client Layer

Web Layer (Präsentations- u. ggf. Geschäftslogik )

Business Layer(Geschäftslogik)

Data Layer(Datenspeicherung)

JDBC

RMI (IIOP, JRMP)

HTTP, HTTPS HTTP, HTTPS

Enterprise JavaBean (EJB)

Ap

plic

atio

n-S

erve

r

Page 29: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 29TietoEnator © 2005

Sonderfall: Zweieinhalb-Schichten-Modell

Weder Zwei-Schichten-Modell, da Anwendung nicht auf Cleint läuft und weder Drei-Schichten-Modell, da Präsentations- und Geschäftslogik nicht getrennt.

Vorteile:– Keine Client-Installation (nur Browser).– Änderungen zentral auf dem Application-Server.

Nachteile:– Präsentations- und Geschäftslogik können nicht von anderen

Anwendungen wiederverwendet werden.– Weitere Nachteile wie bei Vier-Schicht-Modell.

Page 30: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 30TietoEnator © 2005

Typische JEE - Architektur

Page 31: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 31TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

Page 32: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 32TietoEnator © 2005

Web-Container (1)

Stellen Laufzeitumgebung für Servlets bzw. darauf aufsetzende Komponenten, wie JavaServer Pages, … bereit:

– Verwalten Servlets während ihrer Lebensspanne.– Leiten HTTP-Anfragen eines Clients an ein Servlet und liefert

dessen HTTP-Anwtorten zurück Sun beschränkt sich auf die Spezifikation und überläßt die

Implementierung anderen Web-Container können direkt im Application-Server (IBM WebSphere,

BEA Weblogic Server, Borland AppServer) oder als eigenständiges, in den Application Server integrierbares Produkt (Apache Tomcat, Jetty), implementiert werden

Page 33: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 33TietoEnator © 2005

Web-Container (2)

häufig kommunizieren Clients nicht direkt mit einem Web-Container, sondern über einen Web-Server als Vermittler

Vorteile:– Sicherheitsgewinn

Weil aus Internet immer erreichbar, ist ein Web-Server auf Sicherheit hin entworfen worden.

– Lastverteilung Statischer Inhalt (z.B. Bilder) werden direkt vom Web-Server ausgeliefert. Anfragen können auf mehrere Web-Container verteilt werden.

Page 34: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 34TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

Servlets

Page 35: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 35TietoEnator © 2005

Servlets

Vollwertige Java-Klassen, die einen Web-Container als Laufzeitumgebung benötigen.

– Stellen eine Alternative zum Common Gateway Interface (CGI), PHP oder Active Server Pages (ASP) von Microsoft dar.

Ein Servlet nimmt HTTP-Anfragen entgegen und generiert HTTP-Antworten mit dynamischen Inhalten, wie HTML-Seiten, Grafiken, etc.

Bei der Implementierung kann auf andere Java-API (JDBC, ...) zugegriffen werden.

Die Basisklasse HttpServlet stellt Standard-Implementierungen für diverse Service-Methoden (service(), doXxx(), …), die nach Bedarf überschrieben werden können.

Jeder HTTP-Request wird von der Servlet-Engine in einem eigenen Thread ausgeführt.

Page 36: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 36TietoEnator © 2005

Servlets - Beispiel (1)

Page 37: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 37TietoEnator © 2005

Servlets - Beispiel (2)

Page 38: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 38TietoEnator © 2005

Servlets - Wichigste Methoden HTTP-Protkoll (1.1) unterscheidet zwischen verschiedenen

Request-Anfragen:

Keine Impl.UNLINK

Keine Impl.LINK

doOption()Abfrage zulässiger Request-Typen für spezifiziertes Dokument OPTION

doTrace()Zum Protokoll-Debugging TRACE

doDelete()Client fordert Löschen eines Dokuments auf dem Server an DELETE

doPut()Client fordert Ablage von Dokumenten auf Server an PUT

doHead()Client fordert nur den Response-Header, nicht jedoch das resultierende Dokument ab

HEAD

doPost()Anforderung einhält zusätzliche Daten vom Client, z.B. Formulare POST

doGet()Anforderung einer Ressource, z.B. einer Webseite GET

Servlet-MethodeVerwendungRequest

Page 39: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 39TietoEnator © 2005

Servlets - Lebenszyklus

Servlet-

code

Servlet

Zeit

Servlet-

code

1.HTTP-Request/-Response

HTTP-Request/-Responses

2.initialisieren init()

3.Anfragen bearbeiten service(), doGet(), ...

4.zerstören destroy())

Web-Container

1.laden u. instanziieren

class-Datei vom:- lokalen Dateisystem- entfernten Dateisystem- Netzwerkservice

Kursiv: Servlet-Methoden

Page 40: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 40TietoEnator © 2005

Servlets - Weiterführende Themen

Web Deployment Descriptor (web.xml) Übergabe von Konfigurationsparametern aus Web Deployment Descriptor an

init(javax.servlet.ServletConfig) Cookies (Klasse Cookie()), zum Speichern und Übertragen von

Zustandsinformationen zwischen Browser und Web-Container.– Typischer Anwendungsfall: Zuordnung von HTTP-Anfragen zu einer

Sitzung. Senden von Binärdaten(-strömen) an Client, z.B. für Grafiken. Einbinden und Weiterleiten externer Ressourcen (RequestDispatcher()) Überwachung aktiver Sitzungen (HttpSessionListener()) Manipulation des Servlet-Ein-/Ausgaben (Request/Response) durch Servlet-

Filter Tipp: Thomas Stark, „Java EE5 – Einstieg für Anspruchsvolle“, Addison-

Wesley

Page 41: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 41TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

JavaServer Pages (JSP)

Page 42: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 42TietoEnator © 2005

JavaServer Pages (1)

Da ca.99% von Web-Anfragen erwarten eine Antwort im HTML-Format. Mit Servlets kann dies eine recht mühevolle Aufabe sein, weshalb Sun die Servlet-Spezifikation um JavaServer Pages (JSP) ergänzte.

JSP sind ein Hilfsmttel, um die Erstellung der Java-Klassen in den Hintergund zu verlagern und den Fokus auf die grafischen Elemente und HTML zu legen.

JSP betten Fragmente von Java-Code in HTML-Seiten ein (bei Servlets dagegen wird HTML-Code in Java eingebettet).

Alle JSP-Anweisungen werden von den Symbolen <% bzw. %> umschlossen, um den Java-Quelltext vom restlichen Markup (z.B. HTML) zu unterscheiden.

Page 43: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 43TietoEnator © 2005

JavaServer Pages - Beispiel

Page 44: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 44TietoEnator © 2005

JavaServer Pages (2)

Wird JSP zum erstmalig aufgerufen, setzt ein Hintergrundprozess des Web-Containers die JSP in ein Ad-Hoc-Servlet um, kompiliert es in Java-Bytecode (javac) und überrgibt es an die Servlet-Engine zur Ausführung in einem eigenen Thread.

Analog den Servlets können JSPs auf Ressourcen des Servers (Datenbanken, Dateien) zugreifen. Daneben gibt es eine einfache Schnittstelle um auf fertige Java-Komponenten (Beans, Enterprise Java Beans (EJB)) zuzugreifen.

Trotz begrenzter Syntax lassen sich mit JSPs mächtige Anwendungen erzeugen.

Page 45: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 45TietoEnator © 2005

Erzeugen eines Ad-Hoc-Servlets aus einer JSP

Quelle: Kursunterlagen ORDiX AG Zwischenschritt der Erzeugung „echten“ Servlet-Codes nicht dargestellt

Page 46: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 46TietoEnator © 2005

Generierter Servlet-Code

Page 47: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 47TietoEnator © 2005

JavaServer Pages - Bausteine

mehrere Anweisungen möglichHTML-Ausgaben über vordefiniertes Object out (print())

<% Java-Code %> Scriplets

nur eine Java-Anweisung zulässig (keine Semikolon am Ende erlaubt)nur String, primitiver Datentyp und Object (toString())

<%= Java-Ausdruck %> Ausdrücke

zur Definition globaler Variablen und MethodenCode wird nicht bei jedem Request ausgeführt; Variablenwerte bleiben z.B. über mehrere Requests erhaltenCode kann von JSP-Ausdrücken und –Scriptlets aufgerufen werden

<%! Java-Code %> Deklarationen

werden anders als HTML-Kommentare (< -- … -- >) nicht zum Client übertragen und sind daher unter Sicherheitsaspekten vorzuziehen

<%-- Kommentartext --%> Kommentare

Page 48: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 48TietoEnator © 2005

JavaServer Pages - Lebenszyklus

ähnlich wie bei Servlets; falls JSP noch nicht kompiliert vorliegt, wird JSP-Servlet zunächst generiert und übersetzt

Initialisierung– einmalig nach dem Laden und vor

der Bearbeitung der ersten Anfrage– jspInit() kann überschrieben

werden– Abarbeitung der JSP-Deklarationen

Bearbeitung der HTTP-Requests Zerstörung

– eimalig nach dem Beenden der Web-Anwendung

– alle HTTP-Requests müssen abgeschlossen sein

– jspDestroy() kann überschrieben werden

Page 49: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 49TietoEnator © 2005

JavaServer Pages - Weiterführende Themen

(Java-)Kontrollstrukturen– if-else, switch, for, while-do, do-while

vordefinierte (Java-)Variablen– out, request, response, session, application, config, pageContext, page

Direktiven– <%@ NameDerDirektive attribut=„Wert1“ … %> mit NameDerDirektive =

page, include, taglib Arbeiten mit Benutzer-Sessions

– Hinterlegen von Werten zwischen mehreren HTTP-Anfragen– Kodieren von URLs (jsessionid), wenn Cookies vom Client nicht

akzeptiert Auslagern der Geschäftslogik in JavaBeans (interessant, da getrennte

Entwicklung des Web-Design und der Datenverarbeitung möglich) JSP-Tags/Tag-Library (jsp:include, jsp:forward, jsp:getProperty,

jsp:setProperty, jsp:useBean, …)

Page 50: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 50TietoEnator © 2005

Vergleich: Servlets - JavaServer Pages

Gemeinsamkeiten:

– plattformunabhängig, serverunabhängig– Unterstützung von Session-Konzepten– Zugriff auf gesamtes Java-API (z.B. über JDBC auf alle Datenbanken)

Unterschiede:

– Servlet Layout (HTML) muss in Applikationslogik erzeugt werden Nur für Web-Seiten mit geringem Anteil an HTML-Code oder zur Erzeugung

von Nicht-HTML-Daten geeignet

– JSP Direkte Verwendung von HTML-Tags Logik kann in JavaBeans ausgelagert werden Getrennte Entwicklung von Web-Design und Datenverarbeitung möglich

Page 51: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 51TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

Tag-Libraries

Page 52: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 52TietoEnator © 2005

Tag Libraries (1)

Servlet und JSP

– verbinden HTML und Java um dynamische Webseiten zu erstellen– dabei spielt Markup in Form von Tags eine große Rolle; es werden aber

auch immer grundlegende Java-Kentnisse benötigt Tag Libraries (Taglibs, Tag-Bibliotheken)

– gestatten die Implementierung eigener Tags, bei deren Verwendung in einer JSP (zusätzlich zu HTML-Tags) kein Java-Code mehr sichtbar ist

– dem Web-Designer sollen beliebige Java-Objekte (Tag-Handler) transparent zur Verfügung gestellt werden

– Ziel: Tags sollen JSPs von “lästigem” Java-Code befreien, der sie häufig aufbläht und unübersichtlich macht

– Taglibs sind über Projektgrenzen hinaus wiederverwendbar (portabel)

Page 53: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Tag Libraries (2)

Es existieren viele frei verfügbare Tag-Bibliotheken, die einen riesigen Satz an vordefinierter Funktionalität bereitstellen:

– JSP StandardTag Library (JSTL) Manipulation von Datenbanken Lesen von XML-Dateien Internationalisierung http://java.sun.com/products/jsp/jstl/

– Struts Tag Library Umsetzung des Model-View-Controller-Prinzips für JSP

– Regexp Tag-Library Reguläre Ausdrücke für JSP

Sammlung von Tag-Bibliotheken des Jakarta Apache Project:– http://jakarta.apache.org/taglibs/

Page 54: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 54TietoEnator © 2005

Tag Libraries – JSP mit Tag (Beispiel)

Einbinden des Tag Library Decriptors (TLD) in die JSP mittels taglib-Direktive

NamensraumURL des Tag Library Descriptors

Verwendung des <date>-Tags

Aufruf der JSP im Browser

Vom Web-Container ausgelieferte Seite

Page 55: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Tag Libraries - Implementierung

Um Tags benötigt man einen– Tag-Handler

In Java implementiert. Der Web-Container ersetzt zur Laufzeit das Tag in der JSP durch die

Ausgabe des zugeordneten Tag-Handlers.– Tag Library Descriptor (TLD)

Der TLD teilt dem Web-Container mit, welcher Tag-Handler das Tag (im Beispiel <data>) implementiert.

– Web Deployment Descriptor (web.xml) Hier nicht weiter beschrieben.

Page 56: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Tag Libraries - Tag Handler Methoden

<html>

</html>

… evtl. weitere Tags oder Text ...

<tag>

</tag>

… weitere Tags oder Text ...

… evtl. weitere Tags oder text ...

JSP

neues Tag

Tag-Rumpf

doStartTag()

doInitBody()

doAfterBody()

doEndTag()

Page 57: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 57TietoEnator © 2005

Tag Libraries – Tag Handler (Beispiel)

Klasse TagSupport liefert Default-Impl. von doStartTag(), doInitBody(), doAfterBody() und doEndTag()

Nur Methode doStartTag() wird überschrieben

Ausgabe des Tags (erscheint in HTML)

Returnwerte steuern Verhalten des Web-Containers, z.B. ob Tag-Rumpf auszuwerten ist oder nicht

Page 58: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 58TietoEnator © 2005

Tag Libraries – Tag Library Descriptor (Beispiel)

Verknüpfung des neuen Tags <date> mit der Implementierung des Tag-Handlers

Page 59: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Tag Libraries – Weiterführende Themen Einbinden der Tag-Bibliothek (öffentliche URL, Web Deployment Descriptor) Attribute, z.B. <montagsreihe:date format=„dd.MM.yyyy HH:mM“ />

– Tag-Handler als JavaBean mit Getter- und Setter-Methoden für Tag-Attribute

Tag-Rumpf manipulieren (Klasse BodyTagSupport) Script-Variablen

– Zugriff aus demTag-Handler von in JSPs erzeugten Variablen Tag-Kontext (findAncestorWithClass)

– Traversieren in der Tag-Hierarchie Entscheidungen

– <montagsreihe:if condition=„<%= isParamSet %>“ > <montagsreihe:then>vorhanden.</ montagsreihe:then> <montagsreihe:else>nicht vorhanden.</ montagsreihe:else> </montagsreihe:if>

Vordefinierte Variablen in Tag-Handlern (pageContext)

Page 60: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 60TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

Struts

Page 61: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts ist ein (komplexes) Open-Source-Framework für die

Präsentationsschicht von Java-Webanwendungen, das dem „architektonischen Muster“ von Model-View-Controller (MVC) folgt

ist nicht Bestandteil der JEE-Spezifikation von Sun, sondern ein im Jahr 2000 gegründetes Projekt der Apache Software Foundation (ASF)

ist De-facto der Standard für in Java entwickelte Web-Applikationen beschleunigt die Entwicklung von Webanwendungen, indem es HTTP-

Anfragen in einem standardisierten Prozess verarbeitet bedient sich dabei standardisierter Technologien wie Servlets, JSP,

JavaBeans, Resource Bundles … heißt übersetzt soviel wie „Stütze“ oder „Strebe“ http://struts.apache.org/

Page 62: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - Was ist ein Framework?

bedeutet (Programm-)Gerüst, Rahmen oder Skelett und bildet eine (Laufzeit-)Plattform für Anwendungen

gibt eine Anwendungsarchitektur vor, an der der Entwickler konkrete Implementierungen registriert, die dann durch das Framework, d.h. nicht durch die Implementierung, gesteuert werden („Umkehr der Kontrolle“)

wenn das Registrieren der Klassen nicht fest im Programmcode verankert ist, sondern wird „von außen“ konfiguriert wird, so spricht man auch von Dependency Injection

definiert den Kontrollfluss der Anwendung (Workflow) und die Schnittstellen für die Klassen

werden mit dem Ziel einer Wiederverwendung „architektonischer Muster“ für bestimmte Anwendungsbereiche entwickelt

– ein Web-Framework ist demzufolge ein Framework für Web-Anwendungen, dass sich auf Web-Technologien stützt

http://de.wikipedia.org/wiki/Framework

Page 63: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Warum ein Framework benutzen? Die JEE ist eine Sammlung abgestimmter Technologien (Spezifikation), mit

denen sich unternehmensweite Lösungen erstellen lassen. Wie man die JEE-Technologien anwendet, ist lediglich in der Dokumentation und in Entwurfsmustern von Sun beschrieben; JEE selbst stellt jedoch keine Software dar, die man einfach einsetzen könnte.

Die Architektur vieler Web-Frameworks basiert auf JEE-Patterns wie z. B. dem Front-Controller (ActionServlet). Web-Frameworks erleichtern den Einsatz von JEE-Patterns, bspw. in dem Muster nicht manuell implementiert, sondern über eine Datei konfiguriert werden (struts_config.xml).

Gleichnis: http://www.oio.de/webframeworks.htm – Servlets und JSP gleichen einem Spaten, mit dem Erde ausgehoben

werden kann. Ein Spaten beherrscht man in nur wenigen Minuten. Danach ist man in der Lage ganze Baugruben auszuheben. Der Spaten ist preiswert, einfach zu bedienen und benötigt kaum Wartung.

– Ein Framework gleicht einem Bagger. Baggerfahren ist schwierig und erfordert einige Tage zum Lernen und Üben. Bevor ein Bagger eingesetzt werden kann, muß er zum Einsatzort gebracht werden. Und von Zeit zu Zeit muss ein Bagger auch betankt werden. Die Arbeit mit einem Bagger geht im Vergleich zu einem Spaten dafür wesentlich zügiger.

Page 64: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - Model-View-Controller (MVC)

MVC teilt eine Applikation in drei Schichten– Datenpräsentation und Geschäftslogik (Model)– Darstellung und Interaktion mit dem Benutzer (View)– Vermittler zwischen beiden Schichten (Controller)

Ziel: lose Kopplung zwischen Model und View, was dadurch erreicht wird, dass beide nur über den Controller kommunizieren

Vorteil: – ein flexibles Programmdesign, um spätere Änderungen oder

Erweiterungen einfach zu halten und die Wiederverwendbarkeit der einzelnen Komponenten zu ermöglichen

– sorgt bei großen Anwendungen für eine gewisse Übersicht und Ordnung durch Reduzierung der Komplexität

http://de.wikipedia.org/wiki/Model_View_Controller

Page 65: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - MVC Model 1 Architektur

http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html

JSP nimmt HTTP-Anfragen selbst entgegen und gibt HTTP-Antworten direkt an Client zurück

kein Servlet involviert zwar Separierung von

Präsentation (JSP) und Datenhaltung (JavaBean), aber Scriptlets in JSP enthalten noch Anwendungslogik

unklare Arbeitsteilung zwischen Web-Designer (JSP) und Anwendungsentwicker (Java)

Page 66: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - MVC Model 2 Architektur Servlet

– nimmt HTTP-Anfragen entgegen

– ruft Geschäftslogik auf, die das Ergebnis in JavaBeans ablegt

– Anfrage im letzten Schritt an JSP weiter

JSP– nur noch für Präsentation

zuständig; enthält keine Anwendungslogik mehr

– liefert HTTP-Antwort an Client auf Basis der JavaBean-Daten aus

klare Arbeitsteilung zwischen Web-Designer (JSP) und Anwendungsentwicker (Java)

Page 67: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

JavaBeans

sind Software-Komponenten für Java entwickelten sich aus der Notwendigkeit, GUI-Klassen (AWT, Swing)

einfach instanziieren (Reflections) und übertragen (RMI) zu können werden als Container zur Datenübertragung verwendet haben einen parameterlosen Konstruktor speichern persistente Daten in Form von Attributen (properties) und

kapseln darauf basierende Anwendungslogik Attribute bestehen aus nicht-öffentlicher Instanzvariablen (private) und

öffentlichen Zugriffsmethoden (Getter- und Setter-Methoden) Zugriffsmethoden haben immer die Form setXxx() und getXxx() bzw.

isXxx() bei booleschen Attributen sind serialisierbar (Serializable) kann aus anderen JavaBeans aufgebaut sein müssen der JavaBeans Spezifikation genügen http://java.sun.com/products/javabeans/

Page 68: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Komponenten (1)

Page 69: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Komponenten (2)

JavaServer Pages (JSP)– dienen ausschließlich der Darstellung und enthalten deshalb

keine JSP-Scriptlets und –Deklarationen– legen Daten unter Verwendung der Bean-Tag-Bibliothek in

JavaBeans ab– generieren HTML-Antworten

Tag-Bibliotheken– kapseln die in den JSPs benötigte Logik– Struts wird mit vielen bereits vordefinierten Tag-Bibliotheken

ausgeliefert

Page 70: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Komponenten (3)

ActionServlet– genau ein Servlet (Controller)– nimmt HTTP-Anfragen entgegen und füllt ActionForm mit HTTP-

Parametern– leitete HTTP-Anfragen an Action weiter– nimmt ActionForward von Action entgegen und leitet an nächste

Action bzw. JSP weiter– Forwarding wird durch Deklarationen in der struts_config.xml

gesteuert– Authentifizierung, Authorisierung– Logging– …

Page 71: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Komponenten (4) ActionForm (auch FormBean)

– spezielle JavaBean, die alle benötigten Daten für die JSP und die Action enthält

– ist die Schnittstelle zwischen JSP und Action und wird über die struts-config.xml mit einem Formular in der JSP verknüpft

– wenn das Formular abgeschickt wird, wird die Bean durch das ActionServlet (noch bevor die Action ausgeführt wird) über die Setter-Methoden mit den entsprechenden Eingabewerten gefüttert

– die Übertragung der Daten übernimmt das Framework Action

– enthalten die (Geschäfts-)Logik– greifen auf Backend-Komponenten, wie etwa Datenbanken zu– lesen die in den ActionForms gesammelten Daten aus und schreiben ihre

Daten dorthin zurück– gibt eine ActionForward für die weitere Navigation zurück – der Forward hat einen bestimmten Namen über den das ActionServlet

anhand der struts-config.xml entscheidet, zu welcher Seite weitergeleitet werden soll

Page 72: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts – Komponenten (5) ActionForward

– realisieren lose Kopplung zwischen JSPs und Anwendungslogik– einzelne Komponenten werden ausgetauscht, in dem das Ziel des

ActionForward umkonfiguriert wird Konfigurationsdatei struts-config.xml

– „Herz“ jeder Struts-Applikation, in der den Komponenten Aufgaben zugeteilt werden und der Workflow definiert wird

Ressourcen– Struts-Anwendungen enthalten i.d.R. keinen Text: alle

Zeichenketten werden über Ressouce-Dateien verwaltet und erst zur Laufzeit integriert

– Vorteile: Überarbeitung von Texten, ohne JSP zu editieren Gemeinsame benutzung von bezeichnungen über JSPs hinweg Unterstützung von Mehrsprachigkeit

Page 73: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - Ablauf eines Request (1)

ActionServlet(Controller)

ActionForm(Bean)

Action(Servlet steuertBusiness Logic)

BusinessLogic Bean

(Model)

JSP Form(View)

struts_config.xm l

javajavajavajavajava

javajavajavajavajavajavajavajavajavajava

javajavajavajavajavaJSP

Servlet Container

Struts Framew ork

1

7

5

3

4

2

6

HTTP-Request

Dataflow

Contentflow

HTTP-Response

blau - Bestandte il des Fram eworksgelb - von der Fram ework-Spezifikation geforderte E lem entegrün – n icht Bestandte il der Fram ework-Spezifikation

Page 74: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Struts - Ablauf eines Requests (2)

1. Der vom Client gesendete Request wird vom ActionServlet entgegen genommen.

2. Das ActionServlet überträgt die Daten des Requests in die ActionForm, welche diese ggf. validiert.

3. Anschließend übergibt das ActionServlet das gefüllte ActionForm an die zugehörige Action.

4. Die Action kann die Daten der Form auch verwenden, um auf in JavaBeans implementierte Geschäftslogik zuzugreifen.

5. Anschließen wird über die Konfigurationsdatei struts_config.xml bestimnmt, welche JSP zur Darstellung des Ergebnisses verwendet werden soll.

6. Die JSP hat nun ihrerseits die Möglichkeit, auf die Daten der ActionForm und darin enthaltener Business-Logik Beans zuzugreifen, …

7. … um schließlich das Ergebnis darzustellen und die Kontrolle an den Client zurückzugeben.

Page 75: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 75TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

JavaServer Faces (JSF)

Page 76: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces

ein Web-Framework, das Bestandteil der JEE-Spezifikation ist als Antwort von Sun auf den Erfolg von Apache Struts zu verstehen konzeptionell eine Mischung aus Struts und Java-Swing es existieren zwei unabhängige Implementierungen der Spezifikation

– Referenzimplementierung von Sun http://java.sun.com/javaee/javaserverfaces/

– MyFaces-Implementierung der Apache Software Foundation http://myfaces.apache.org/

hat das Potenzial Struts zu verdrängen, da es aus dessen Fehlern lernen konnte (Spezifikation 1.1 wurde im Mai 2004 veröffentlicht)

Struts-Anwendungen können nach JSF-Anwendungen migriert werden

– http://struts.apache.org/1.x/struts-faces/

Page 77: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Grundidee (1) stellen GUI-Komponenten für Buttons, Labels, Eingabefelder,

Checkboxen, etc. in Form von JSP-Tags zur Verfügung;– Faces Tag-Bibliothek: entält Core-Tags des Frameworks– HTML Tag-Bibliothek: enthält Faces-Pedants von HTML

Erweiterungen zu komplexeren Elementen wie Tabellen, Bäume, … sind möglich

die GUI-Komponeten sind für jede JSP als Baumstruktur am Server vorhanden (Analogie zu Java-Swing)

– für jedes Oberflächenelement gibt es im Hintergrund eine korrespondierendes UIComponent-Objekt, wie UIInput, UICommand, …

– Container-Komponenten, wie UIPanel, sorgen eigenständig für das Layout iher Sub-Komponenten

– die zu den GUI-Komponenten korrespondierenden Objekte können den Zustand des GUI-Elements, z.B. Eingabedaten, speichern

Page 78: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Grundidee (2)

zur Darstellung der GUI-Komponeten werden diese über einen separaten Renderer serverseitig in HTML umgewandelt

der Renderer kann ausgetauscht werden; jedem GUI-Element kann sogar ein eigener Renderer zugewiesen werden

Kommunikation zwischen GUI-Elementen und verarbeitenden Funktionen findet über Event/Listener-Konzept statt

jeder GUI-Komponente kann ein Validator zugeordnet werden, der das Format eingegebener Daten prüft

Dialogabläufe werden in der Datei face-config.xml spezifiziert

– http://www.sigs.de/publications/js/2004/04/beneken_JS_04_04.pdf

Page 79: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Grundidee (3)

Page 80: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Ablauf eines Requests (1)

FacesServlet(Controller)

faces_config.xm l

JSP Form(View)

JSP

javajavajavajavajava

JSF-Tags

ActionListener

javajavajavajavajava

JavaBean(Model)

java

HTTP-Request

HTTP-Response

Events

Daten

Request-/Response-Daten

erzeugt

forw ard

benutzt

Servlet Container

JSF Framew ork

1

2

3 41

5

blau - Bestandte il des Fram eworksgelb - von der Fram ework-Spezifika tion geforderte E lem entegrün – n icht Bestandte il der Fram ework-Spezifikation

Page 81: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Ablauf eines Requests (2)

1. Der vom Client gesendete Request wird vom FacesServlet entgegen genommen.

2. Das FacesServlet leitet den Request an die dafür konfigirierte JSP weiter.

3. Die JSP verwendet die JSF Tag Library und baut für jede JSP einen eigenen GUI-Komponentenbaum auf. Die Daten aus dem Request werden auf dem Komponentenbaum abgebildet.

4. Die Daten aus dem Komponentenbaum werden ihrerseits auf JavaBeans abgebildet.

5. Werden an der Oberfläche Buttons (oder vergleichbare Elemente) betätigt, werden über einen Event-Mechanismus die ActionListener aufgerufen, die an dem Element angemeldet sind.

Page 82: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Faces - Weiterführende Themen

JSF Request Processing Lifecycle– Restore View, Apply Request Values, Process Validations,

Update Model Values, Invoke Application, Render Response Renderer Validatoren Events und Listener Dialogablauf

– Workflow in face-config.xml spezifizieren Datenaustausch mit JavaBeans

– Datenbindungssyntax Internationalisierung

Page 83: Introduction to JEE

JEE – Was ist das? 12.03.07 Page 83TietoEnator © 2005

JEE – Was ist das?Enterprise Edition

Web Container

Andere Frameworks

Page 84: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Andere FrameworksRuby on Rails (1)

„Ruby on Rails“, kurz auch nur „Rails“ oder RoR im Sommer 2004 veröffentlicht; seit dem gibt es einen „Hype“ um RoR ist als Gegenstück zu schwergewichtigen Web-Frameworks zu

verstehen MVC-Framework DRY – „Don‘t repeat youself“

– Wissen zentral an einer Stelle halten, um Redundanz zu vermeiden

– angeblich enthalten Ruby-Programme und damit auch RoR-Anwendungen weniger Redundanz als Java-Programme

„scaffholding“ (Gerüstbau)– mit wenigen Kommandos wird Grundgerüst einer RoR-

Anwendung erstellt

Page 85: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Andere FrameworksRuby on Rails (2)

• „Convention over configuration“

• Zuordnung der RoR-Komponenten über Namensgleichheit statt in aufwändigen XML-Konfigurationsdateien

Page 86: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Andere FrameworksRuby on Rails (3)

• rechts: Zuordnung JEE- zu RoR-Welt

• Zukunft muss zeigen, ob RoR JEE verdrängen kann oder nur eine weitere Nischenlösung, insbesondere für kleinere Web-Anwendungen, wird.

• http://www.rubyonrails.org/

Page 87: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Andere FrameworksGroovy on Grails Groovy

– ist Skriptsprache mit Java-ähnlicher Syntax, die um dynamische Elemente angereichert wurde

– wird vor Ausführung in Java-Bytecode übersetzt und ist daher in einer JVM lauffähig ist

Groovy on Grails– wird mit dem Ziel entwickelt, viele Effekte von “Ruby on Rails” auf

die JEE-Plattform zu übertragen– leichte Einarbeitung durch einheitliche Vorgaben (“convention

over configuration”)– teilautomatiserte Erstellung von Artefakten aus Vorlagen

(“scaffholding”)– Eingestzte Technologien und Produkte: Java EE, Groovy, Spring,

Hibernate, Sitemash, Prototype, Dojo, Junit, Canoo WebTest http://grails.org/

Page 88: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

Andere Frameworks

Web-Frameworks gibt es wie “Sand am Meer” http://java-source.net/open-source/web-frameworks

– Spring– Tapestry– Cocoon

– … und viele andere mehr

Page 89: Introduction to JEE

JEE – Was ist das? 12.03.07 TietoEnator © 2005

JEE – Was ist das?

Ende Teil 1