Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Ähnliche Dokumente
Praxiswissen Online-Marketing

Springer essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Gravitation und Physik kompakter Objekte

Politikwissenschaft für die Soziale Arbeit

Birgit Baur-Müller. Westliche Heilpflanzen in der chinesischen Medizin. Von der Musterdiagnose zur Rezeptur

Führung und Mikropolitik in Projekten

Ideengeschichte der Physik

Herausgegeben von Professor Dr. Nikolaus Franke Universität Wien, Wien, Österreich

Prüfungstraining für Bankkaufleute

Der Weg in die Unternehmensberatung

H. Forst T. Fuchs-Buder A. R. Heller M. Weigand Hrsg. Weiterbildung Anästhesiologie

Masterkurs Client/Server-Programmierung mit Java

Lösungen zum Lehrbuch Angewandtes Rechnungswesen

Berufseinstieg für Ingenieure

Yoga - die Kunst, Körper, Geist und Seele zu formen

Felix Huth. Straßenkinder in Duala

Thomas Geisen. Arbeit in der Moderne

Familienforschung. Herausgegeben von A. Steinbach, Duisburg, Deutschland M. Hennig, Mainz, Deutschland O. Arránz Becker, Köln, Deutschland

Islam und Politik. Herausgegeben von K. Schubert, Münster, Deutschland

Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation

Berufswahl und Bewährung

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Die Europäische Union erfolgreich vermitteln

Schule und Gesellschaft Band 58

Klinische Untersuchung der Stütz- und Bewegungsorgane

Anjes Tjarks. Familienbilder gleich Weltbilder

Trends im Betrieblichen Gesundheitsmanagement

Behinderung und Migration

Jan Lies. Kompakt-Lexikon PR Begriffe nachschlagen, verstehen, anwenden

Distribution in Afrika

Erziehungswissenschaft

Elementare Numerik für die Sekundarstufe

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Mentoring als gendergerechte Personalentwicklung

Innovative Preismodelle für hybride Produkte

Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion

Übergewichtige Kinder und Jugendliche in Deutschland

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst

Thomas von Winter Ulrich Willems (Hrsg.) Interessenverbände in Deutschland

SEO Strategie, Taktik und Technik

Stressmanagement im Fernstudium

Mobbing am Arbeitsplatz

Kulturpolitik in Deutschland

Das Internet als Instrument der Unternehmenskommunikation unter besonderer Berücksichtigung der Investor Relations

Belastung und Beanspruchung im Lehrerberuf

Christina Holtz-Bacha (Hrsg.) Stereotype?

Human Capital Management

Ökonomisches Denken und Ethisches Handeln

Erbschaftssteuer im Kontext

Tanja Hartwig genannt Harbsmeier. Up- und Cross-Selling

Parteien in Staat und Gesellschaft

Die Entwicklung der Rechtsprechung hinsichtlich der Rechtsstellung der Gesellschaft bürgerlichen Rechts und ihrer Gesellschafter im Rechtsverkehr

Immobilien als Mittel der privaten Altersvorsorge

Wilfried Weißgerber. Elektrotechnik für Ingenieure Klausurenrechnen

Industrie 4.0 in Produktion, Automatisierung und Logistik

Übungen zur Kosten-, Erlösund Ergebnisrechnung

Optimal Energie sparen beim Bauen, Sanieren und Wohnen

Unterstützte Kommunikation in der Sprachtherapie

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Uwe Flick. Triangulation

Zielvereinbarung und variable Vergütung

Müdigkeit, Erschöpfung und Schmerzen ohne ersichtlichen Grund

Offizielles Erinnern und die Situation der Sinti und Roma in Deutschland

Zeugnisse richtig formulieren

Kompakt Edition: Immobilienfinanzierung

Einführung Wirtschaftsinformatik

Die Person als Organon in der Sozialen Arbeit

Die deutsch-französischen Beziehungen von der Wiedervereinigung zum Maastrichter Vertrag

Ulrich Gebhard. Kind und Natur

Die Besetzung und Fluktuation in der Clubführung der deutschen Fußball-Bundesliga

Anforderungen von Crossmedia-Kampagnen

Konzeption eines Sportmagazins für Randsportarten

Dominik Petko (Hrsg.) Lernplattformen in Schulen

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Unterwasserrugby für den Schulsport

Reihe Nachhaltigkeit. Energiepolitik: Rahmenbedingungen für die Entwicklung von fossilen Brennstoffen zu erneuerbaren Energien.

Elektrotechnik für Ingenieure Klausurenrechnen

Kathrin Fahlenbrach Ingrid Brück Anne Bartsch (Hrsg.) Medienrituale

Kundenmanagement im Krankenhaus

Irmhild Poulsen. Burnoutprävention im Berufsfeld Soziale Arbeit

Kati Förster (Hrsg.) Strategien erfolgreicher TV-Marken

Die Bilanzierung des Geschäfts- oder Firmenwertes nach HGB und IFRS

Förderung der Autonomieentwicklung im Umgang mit Kinderliteratur in der Grundschule

Unternehmensentwicklung

Strategieumsetzung an Beispielen aus dem Tourismus

Handlungsansätze für ein betriebliches Gesundheitsmanagement in Krankenhäusern

Die kritische Analyse eines Mindestlohnes für die Arbeitsmarktpolitik

Konzeptionelle Systemanalyse auf Basis energiepolitischer Rahmenbedingungen für die Zielgruppe der Wohnungsbaugesellschaften

IT-Revision, IT-Audit und IT-Compliance

Hunde in der Sozialen Arbeit mit Kindern und Jugendlichen

Roland Sturm. Politik in Großbritannien

Zweckgesellschaften und strukturierte Unternehmen im Konzernabschluss nach HGB und IFRS

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Stefan Gillich Rolf Keicher (Hrsg.) Bürger oder Bettler

Kurzstudie BESTSELLER. Roman Büttner. Das Phänomen Fast Food. Eine sozialgeschichtliche Untersuchung zur Erfindung des schnellen Essens

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Internationaler Austausch in der Sozialen Arbeit

Webanwendungen mit IBM Rational und IBM WebSphere V6

Das Spannungsfeld im mittleren Management. Ein möglicher Burnout-Faktor?

Transkript:

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Frank Müller-Hofmann Martin Hiller Gerhard Wanner Programmierung von verteilten Systemen und Webanwendungen mit Java EE Erste Schritte in der Java Enterprise Edition

Frank Müller-Hofmann Uhingen, Deutschland Martin Hiller Ostfildern, Deutschland Gerhard Wanner Leinfelden-Echterdingen, Deutschland ISBN 978-3-658-10511-2 DOI 10.1007/978-3-658-10512-9 ISBN 978-3-658-10512-9 (ebook) Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg Springer Fachmedien Wiesbaden 2015 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichenund Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Springer Fachmedien Wiesbaden GmbH ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com)

Vorwort Dieses Buch behandelt die Programmierung verteilter Systeme in Java. Besonderer Wert wird auf die Realisierung serverseitiger Anwendungen im Rahmen der Architektur von Java EE 7 gelegt. Nach der Einführung in die Architektur von Java EE 7 von Oracle in Kapitel 1 werden wichtige Mechanismen der Interprozesskommunikation vorgestellt. Kapitel 2 behandelt hierbei die Netzwerkprogrammierung via Sockets und Kapitel 3 erläutert die Java-spezifische Remote Method Invocation als ein Mittel zur synchronen Kommunikation zwischen verteilten Betriebssystemprozessen. Diese beiden Kapitel über die Interprozesskommunikation gehören jedoch nicht zur Java EE-Architektur. Anschließend wird die Realisierung von Webanwendungen mit Hilfe von Servlets, JavaServer Pages und JavaServer Faces in den Kapiteln 4 bis 6 erläutert. Kapitel 7 beschreibt die persistente Speicherung von Daten anhand der low-level Technologie Java Database Connectivity. In Kapitel 8 wird mit den Enterprise JavaBeans das serverseitige Komponentenmodell der Architektur von Java EE 7 besprochen. In Kapitel 9 wird die im Gegensatz zu JDBC abstraktere high-level Technologie Java Persistence API zur persistenten Speicherung von Daten vorgestellt. Zahlreiche Beispiele sowie Übungsaufgaben runden das Buch ab, sodass der Leser nach der Lektüre des Buches in der Lage ist, komponentenbasierte Webanwendungen auf Basis der Java Enterprise Architektur zu erstellen. Danksagung Wir bedanken uns sehr herzlich bei Prof. Dr. Joachim Goll, Marcel Kilian, Markus Schuler und Karin Weiß für ihre wertvollen Hinweise und Korrekturen. Herrn Steffen Wahl danken wir für die sorgfältige Durchführung des Konfigurationsmanagements. V

Inhaltsverzeichnis 1 EINFÜHRUNG IN DIE ARCHITEKTUR VON JAVA EE 7... 1 1.1 Schichtenmodelle für verteilte Systeme in Java... 2 1.2 Der Java EE Application Server... 5 1.3 Historische Entwicklung von Java EE... 6 1.4 Die Web- und die Verarbeitungsschicht in Java EE... 7 1.5 Komponenten von Java EE... 8 2 NETZWERKPROGRAMMIERUNG MIT SOCKETS... 11 2.1 Von monolithischen zu verteilten Rechnersystemen... 12 2.2 Das Konzept der Sockets... 26 2.3 Protokolle... 49 2.4 Übungen... 51 3 REMOTE METHOD INVOCATION... 57 3.1 Die Funktionsweise von RMI... 59 3.2 Die Architektur von RMI... 59 3.3 Entwicklung einer RMI-Anwendung... 61 3.4 Ein einfaches RMI-Beispiel... 66 3.5 Object by Value und Object by Reference... 72 3.6 Übungen... 77 4 SERVLETS... 81 4.1 Generierung von Webseiten... 83 4.2 Dynamische Erzeugung von Seiteninhalten... 85 4.3 Erstellen von Webanwendungen... 90 4.4 Wichtige Elemente der Servlet-API... 95 4.5 Annotationen für Servlets... 104 4.6 Der Deployment-Deskriptor für Servlets... 106 4.7 Das Beispielprogramm Forum... 108 4.8 Übungen... 118 5 JAVASERVER PAGES... 121 5.1 Skriptelemente... 125 5.2 Direktiven... 132 5.3 Aktionen... 137 5.4 Verwendung von JavaBeans... 141 5.5 Tag-Bibliotheken... 146 VII

VIII Inhaltsverzeichnis 5.6 Übungen... 155 6 JAVASERVER FACES... 157 6.1 Aufgaben des JSF-Frameworks... 160 6.2 Konzepte und Funktionsweise des JSF-Frameworks... 161 6.3 Aufbau von JSF-Anwendungen... 170 6.4 Konfiguration einer JSF-Anwendung... 193 6.5 Übungen... 214 7 JDBC... 215 7.1 Die Paketstruktur der JDBC-API... 217 7.2 JDBC-Treiber... 220 7.3 Zugriff auf ein DBMS über JDBC... 221 7.4 SQL-spezifische Datentypen... 244 7.5 Exceptions bei der Verwendung von JDBC... 246 7.6 JDBC-Metadaten... 247 7.7 Übungen... 249 8 ENTERPRISE JAVABEANS... 251 8.1 Verteilte Systeme... 253 8.2 Die Idee der Enterprise JavaBeans... 254 8.3 Abbildung von Klassen auf Bean-Typen... 256 8.4 Überblick über die Enterprise JavaBeans-Architektur... 258 8.5 Konzept der Enterprise JavaBean-Typen... 264 8.6 Session-Beans... 265 8.7 Der Java EE Application Server Wildfly... 276 8.8 Übungen... 285 9 DIE JAVA PERSISTENCE API... 301 9.1 Grundlegendes Mapping... 305 9.2 Objektlebenszyklus... 316 9.3 Beziehungen zwischen Objekten und ihre Realisierung in JPA... 322 9.4 Die Java Persistence Query Language... 342 9.5 Transaktionen... 346 9.6 JPA-Konfiguration mit XML-Dateien... 349 9.7 Übungen... 353 BEGRIFFSVERZEICHNIS... 355 ABKÜRZUNGSVERZEICHNIS... 361 ANHANG A VERWENDUNG EINER CODEBASE BEI RMI... 363

Inhaltsverzeichnis IX ANHANG B JNDI... 379 ANHANG C CONNECTION POOLING... 389 ANHANG D JDBC-TREIBERTYPEN... 395 LITERATURVERZEICHNIS... 399 INDEX... 401