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