6. JEE /JSF / EJB / CDI 6.1 Grundlagen 6.2 Einführendes nulltes Beispiel 6.3 Validierung 6.4 JSF mit EJB und JPA 6.5 Get 6.6 Sicherheit 6.7 Weitere JSF-Möglichkeiten 6.8 JSF-Lebenszyklus 6.9 Templates und Komponenten 6.10 Nutzung von Ajax 6.11 Testen von Web-Applikationen - Selenium 6.12 JSF-Erweiterungen Komponentenbasierte Software- Prof. Dr. 313 Entwicklung Stephan Kleuker Literatur • E.Burns, C. Schalk, JavaServer Faces 2.0: The Complete Reference, Mc Graw Hill, New York, 2010 • M. Marinschek, M. Kurz, G. Müllan, JavaServer Faces 2.0, dpunkt, Heidelberg, 2010 (im Wesentlichen auch: http://tutorials.irian.at/jsf/semistatic/introduction.html) • D. Geary, C. Horstmann, Core JavaServer Faces, 3. Auflage, Prentice Hall, USA, 2010 • Standard: Sun, JSR 344: JavaServer Faces 2.2, http://jcp.org/aboutJava/communityprocess/final/jsr344/index.html • M. Çalışkan, O. Varaksin, PrimeFaces Cookbook - Second Edition, Packt Publishing, Birmingham UK, 2015 • Sun, JEE7 Tutorial, http://download.oracle.com/javaee/7/tutorial/doc/ • Bücher nutzen teilweise Eclipse und JBoss/WildFly; nicht notwendig, funktioniert fast alles mit Netbeans und Glassfish / Apache Komponentenbasierte Software- Prof. Dr. 314 Entwicklung Stephan Kleuker 6.1 Grundlagen verschiedene Ziele von JSF-Applikationen • Software, die Web als zusätzlichen Nutzen hat (z. B. Web- Präsenz, Kataloge, Bestellmöglichkeiten) • verteilte Softwaresysteme, die Netz als Komponentenverbindung nutzen (z. B. B2B) • Arbeitsplatzsoftware, die auch das Web nutzt (nahtlose Integration, Web ist „unsichtbar“) • letztes Ziel gewinnt immer mehr Bedeutung für andere Ziele • Aber: Nicht immer ist Web-fähige Software gewünscht! Komponentenbasierte Software- Prof. Dr. 315 Entwicklung Stephan Kleuker Technische Herausforderungen (1/2) auf welchem Rechner läuft welche Software • zentraler Server oder peer-to-peer • Client-Server, wer ist thin, wer ist fat Browser-fähig oder standalone • welcher Browser, welche Sicherheitseinstellungen, welche Plugins, welches HTML • wie bekommt Kunde Software zum Laufen, wie funktionieren Updates • darf man, muss man offline arbeiten können • mobil, nativ • Usability Komponentenbasierte Software- Prof. Dr. 316 Entwicklung Stephan Kleuker Technische Herausforderungen (2/2) Sicherheit • wie Daten sicher verschicken, wem gehört Internet, wer muss zuhören dürfen Performance und Stabilität • schnelle Antworten auch bei Last • saubere, reproduzierbare Transaktionen • was passiert bei Netzausfall Komponentenbasierte Software- Prof. Dr. 317 Entwicklung Stephan Kleuker Typische Entwicklungsplattformen (Ausschnitt) .Net / Microsoft • ASP.Net (Active Server Pages, gute Abstraktion, zunächst zu wenig Web-Server (IIS)) • Silverlight (Browser-PlugIn) für RIA, mittlerweile auch lokal • Oberflächen basierend auf WPF (Windows Presentation Forum, vektorbasiert, anfänglich zu langsam) Java • Servlets, JSP, JSF [später genauer], angegeben mit steigenden Abstraktionsgrad sehr weit verbreitet • verschiedene neue Frameworks (z. B. Apache Wicket) • GWT (Google Widget Toolset), SW einmal in Java schreiben, dann individuell für Browser in Javascript übersetzen • JavaFX , eigene Sprache, nutzt im Browser JRE Meinung: Silverlight und JavaFX gegenüber HTML5 und aktuell noch Flash im Nachteil, JavaFX geht in andere Richtung Komponentenbasierte Software- Prof. Dr. 318 Entwicklung Stephan Kleuker Konzept eines Seitenaufrufs HTTP-Request r r e e n n - - i i b B a a e J t t W E n n o o C C HTTP-Response mit Client Application Server HTML-Datei im Body • HTML (Hypertext Markup Language) – Auszeichnungssprache mit festgelegten tags zum Aufbau der Ausgabe • Ebene 3/4 typisch TCP/IP, Session Ebene 5: HHTP, Darstellungsebene 6: HTML, Programmebene 7: JVM Komponentenbasierte Software- Prof. Dr. 319 Entwicklung Stephan Kleuker HTTP-Ablauf • Client: Request – get, post, head, put, ... URL HTTP1.x – Header Info: Accept, Cookie, ... – Body: Post-Parameter • Server: Response – Statusmeldung: HTTP1.x 200 OK, oder 404 Error – Header Info: Content-type, set-cookie, ... – Body: Dokument • Verbindungsabbau • Protokoll ist zustandslos/gedächtnislos; Client wird bei erneutem Request ohne Trick nicht als Bekannter erkannt Komponentenbasierte Software- Prof. Dr. 320 Entwicklung Stephan Kleuker Web-Server mit Container nutzen • Servlet: Wortkreation aus den Begriffen „Server“ und „Applet“, (serverseitiges Applet) • Web-Server leitet HTTP- Request an Servlet weiter • Servlet kann Antwort (HTML-Code) berechnen • Servlet kann Anfrage- Informationen und Serverumgebung nutzen Container • Servlet kann mit anderen Servlets kommunizieren Komponentenbasierte Software- Prof. Dr. 321 Entwicklung Stephan Kleuker Motivation für JSF • Die Widerverwendbarkeit von Servlets ist gering • Innerhalb jeder JSP (Java ServerPage) bzw. jedes Servlets müssen ähnliche Schritte ausgeführt werden • Nur ein Teil der Applikationslogik kann in Tag-Bibliotheken gekapselt werden • Workflow ist in der Applikationslogik versteckt, dadurch schwer nachvollzierbar • ab JSF 2.0 sehr flexible Gestaltungsmöglichkeiten, u. a. AJAX- Einbettung • Hinweis: wir betrachten nur Grundkonzepte (-> mehr evtl. Semesteraufgabe) Komponentenbasierte Software- Prof. Dr. 322 Entwicklung Stephan Kleuker
Description: