Oracle ADF Faces Oracles Implementierung der JavaServer Faces Spezifikation OPITZ CONSULTING Oracle ADF Faces Seite 1 Typische Enterprise Architektur Business Services Layer Controller Layer User Input / Page Flow Handling Logic Business Service Interface Business Service Business Objects Code Query Results Collections of Value Objects UI-Model Layer View Layer Business Data Quelle: Steve Muench Oracle ADF Faces Seite 2 Typische Präsentationsschicht Controller Layer User Input / Page Flow Handling Logic Collections of Value Objects UI-Model Layer View Layer Quelle: Steve Muench Oracle ADF Faces Seite 3 Web Container Quelle: Sun Oracle ADF Faces Seite 4 Web-Container Eine Web Komponente ist ein Stück Software, das einen Web Request verarbeitet und über HTTP eine Response zurück gibt. In der Regel wird dabei die Benutzeroberfläche einer Web-Anwendung als Response produziert. Im J2EE-Standard gibt es zur Zeit zwei Arten von Web-Komponenten: Servlets JavaServer Pages (JSPs) Oracle ADF Faces Seite 5 Java Servlets Servlets: Standardisiertes Java-API zur Bearbeitung von HTTP-Requests Breite Unterstützung durch Hersteller von Applikationsservern Klar definierter Lebenszyklus, wird durch Container gemanagt Servlet API: Schnittstelle zum Lesen eines Requests und Schreiben der Response Diverse Unterstützungsdienste wie z.B. Session-Management Grobe Funktionsweise: Annahme eines Browser Requests Verarbeitung durch das Java Servlet, dabei wird die Antwort generiert Rücksendung der Antwortseite an den Browser Oracle ADF Faces Seite 6 Java Servlets – ein einfaches Beispiel public class Servlet1 extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=WINDOWS-1252"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet1</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello From Servlet1"); out.println("</body>"); out.println("</html>"); out.close(); } } Oracle ADF Faces Seite 7 JavaServer Pages JavaServer Pages (JSP) Standardisierte Spezifikation zur Einbettung von Java in HTML-Seiten Trennung von statischem und dynamisch erzeugtem HTML Kapselung von Javacode durch sogenannte Tag Libraries Grobe Funktionsweise Übersetzung der JavaServer Page in ein Servlet („einmalig“) Ausführung des Servlets Oracle ADF Faces Seite 8 JavaServer Pages – ein einfaches Beispiel <%@ page contentType="text/html;charset=windows-1252"%> <html> JSP Page Directive <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Hello World</title> </head> <body> <h2>The current time is:</h2> <p><%= new java.util.Date() %></p> </body> JSP Ausdruck </html> Oracle ADF Faces Seite 9 JavaServer Pages Neues Problem: Zu viel Java-Code in den JSPs Lösung: „Model 2“-Entwurfsmuster Servlets für die Verarbeitung der Benutzeraktionen und die Applikationssteuerung JSPs für die Bereitstellung der Präsentation JSP Tag Libraries für Markup Code Alternative Presentationsframeworks auf Basis von Servlets Jakarta Tapestry , Turbine mit Velocity Apache Cocoon Opensymphony Webwork Oracle ADF UIX ... Oracle ADF Faces Seite 10