Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.

Ähnliche Präsentationen


Präsentation zum Thema: "TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt."—  Präsentation transkript:

1 TURBINE

2 Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt

3 Architektur – MVC M odel V iew C ontroller

4 Architektur HTML und Java vermischen JSP (Java Server Pages) Tools Torque Velocity

5 Konzepte PAGE LAYOUT NAVIGATION SCREEN ACTIONS + LOADERS

6 Vom Request zur Response...

7 Warum Velocity? Java-based template engine Integration in Turbine Ermöglicht die Trennung zwischen: - Geschäftslogik - Darstellung Im Gegensatz dazu: JSP Mit Velocity  einfacher zu arbeiten!!

8 Noch einmal MVC

9 Eine Seite mit Velocity bauen (1) Screen Java Code in WEB-INF/classes compilieren.vm – Template mit selben Namen erzeugen Unter templates/screens/… speichern TurbineResources.properties editieren unter WEB-INF/conf module.packages=org.apache.turbine.modules, org.mycompany.newapp.modules „classpath“ für Turbine

10 Eine Seite mit Velocity bauen (2) Ausführung Request z.B. Index class wird ausgeführt (Klasse muss von VelocityScreen erben) Velocity Template Engine wird aufgerufen und Index.vm ausgeführt

11 Eine Seite mit Velocity bauen (2) Seitengenerierung.java.vm bauen Context HTML Torque DB erben von VelocityScreen/Navigation

12 Eine Seite mit Velocity bauen (2) Beispiel public class Index extends SecureScreen { public void doBuildTemplate(RunData data, Context context) { context.put("entries", getEntries()); } private List getEntries() { try { Criteria criteria = new Criteria(); return RdfPeer.doSelect(criteria); } catch (Exception e) { return null; }

13 Eine Seite mit Velocity bauen (2) Beispiel... #set ( $headings = ["Title", "Dept", "Author", "Url","Body"," "] ) #if ($entries) #foreach ($heading in $headings) #headerCell ($heading) #end #foreach ($entry in $entries) #entryCell ($entry.Title) #entryCell ($entry.Dept) #entryCell ($entry.Author) #entryCell ($entry.Url) #entryCell ($entry.Body) Edit...

14 Eine Seite mit Velocity bauen (3) Layout und Navigation Java Klassen erben von VelocitySiteLayout und VelocitySiteNavigation.vm Files werden im templates/layout bzw. /navigation Verzeichnis gespeichert

15 Eine Seite mit Velocity bauen (3) Request Insert.vm request: screen.vm Default.vm (Layout) DefaultTop.vm Menu.vm DefaultBottom.vm

16 Eine Seite mit Velocity bauen (4) Actions Aufruf einer Action  Java-File wird ausgeführt, z.B Erst dann wird die Screen-Class und das.vm- Template ausgeführt

17 Eine Seite mit Velocity bauen (4) Beispiel public class SQL extends SecureAction { public void doInsert(RunData data, Context context) throws Exception { Rdf entry = new Rdf(); data.getParameters().setProperties(entry); entry.save(); } public void doUpdate(RunData data, Context context) throws Exception { Rdf entry = new Rdf(); data.getParameters().setProperties(entry); entry.setModified(true); entry.setNew(false); entry.save(); }

18 Docs 2.3/howto/velocity-site-howto.html 2.3/howto/velocity-site-howto.html 1/turbine.pdf 1/turbine.pdf

19 Services in Turbine Servicearchitektur „Fulcrum“ Unterstützen MVC-Komponenten Zahlreiche Services für Web-Anwendungen Services sind Einzelanwendungen Selbstaufrufend Ressourcensparend Service kann auch ohne Turbine ausgeführt werden

20 Übersicht über Services (1) Assembler Broker Service Cache Service Castor Service FreeMarker Service Intake Service JSP Service Localization Service Logging Service

21 Übersicht über Services (2) MimeType Service Pool Service Resources Service RunData Service Scheduler Service Security Service Template Service Upload Service

22 Übersicht über Services (3) Velocity Service XSLT Service UI-Manager Service 2.3/services/index.html 2.3/services/index.html

23 UI Manager (1) Service für die Benutzerschnittstelle Ähnlich den CSS-Files Wird in Template-Files eingebunden Eigene Skin-Files

24 UI Manager (2) pathoftdk/webapps/newapp/resources/ui /skins/default/skin.props z.B.: bgcolor = #FFFFFF Template-File öffnen

25 Torque – ein Überblick 1. Datenbankunabhängige XML-Beschreibung des Datenschemas 2. Generierung von Klassen Datenbankabfragen ohne explizites SQL möglich Unterstützung vieler Datenbankanbieter

26 Sicherheit und Benutzerkonzept (1) Ausgeklügeltes Benutzerkonzept mit Rechten: individuelle Aktionen Rollen: Vereinigung von verschiedenen Rechten Gruppen: weitere Aufteilung in horizontaler Richtung

27 Ablauf des Benutzerkonzeptes (1) Bedingungen: Auszuführende Methoden mit Namensmuster do Erben von SecureAction, SecureScreen, usw.

28 Ablauf des Benutzerkonzeptes (2) Sollen Actions in Turbine vor unbefugter Ausführung geschützt werden, so müssen sie von der Klasse SecureAction erben, in der die Sicherheitsabfragen gekapselt sind.

29 Ein kurzer Blick in die Datenbank TURBINE_USER TURBINE_PERMISSION TURBINE_ROLE TURBINE_GROUP TURBINE_ROLE_PERMISSION TURBINE_USER_GROUP_ROLE

30 Beispiel zur Handhabung //User von RunData User user = data.getUser(); // AccessControlList Object von RunData AccessControlList acl = data.getACL(); // hat sich der User eingeloggt und hat er die benötigten Rechte? if( user.hasLoggedIn() && acl.hasPermission("viewinvoice", "Accounting") ) { data.setMessage("You have permission to view the invoices."); setTemplate(data, "Invoice.vm"); } else { data.setMessage("You do not have Permission to view the Invoices"); setTemplate(data, "UnauthorizedRequest.vm"); }

31 Ende Vielen Dank für Eure Aufmerksamkeit!


Herunterladen ppt "TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt."

Ähnliche Präsentationen


Google-Anzeigen