TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird...
-
Upload
annemarie-kappelman -
Category
Documents
-
view
214 -
download
0
Transcript of TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird...
![Page 1: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/1.jpg)
TURBINE
![Page 2: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/2.jpg)
Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt
![Page 3: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/3.jpg)
Architektur – MVC Model View Controller
![Page 4: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/4.jpg)
Architektur HTML und Java vermischen JSP (Java Server Pages) Tools Torque Velocity
![Page 5: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/5.jpg)
KonzeptePAGE
LAYOUTNAVIGATION
NAVIGATION
SCREEN
ACTIONS+
LOADERS
![Page 6: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/6.jpg)
Vom Request zur Response...
![Page 7: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/7.jpg)
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!!
![Page 8: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/8.jpg)
Noch einmal MVC
![Page 9: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/9.jpg)
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/confmodule.packages=org.apache.turbine.modules, org.mycompany.newapp.modules „classpath“ für Turbine
![Page 10: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/10.jpg)
Eine Seite mit Velocity bauen (2) Ausführung
Request z.B. http://localhost:8080/newapp/.../Index.vm
Index class wird ausgeführt (Klasse muss von VelocityScreen erben)
Velocity Template Engine wird aufgerufen und Index.vm ausgeführt
![Page 11: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/11.jpg)
Eine Seite mit Velocity bauen (2) Seitengenerierung
.java
.vm
bauen Context
HTML
Torque
DB
erben von VelocityScreen/Navigation
![Page 12: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/12.jpg)
Eine Seite mit Velocity bauen (2) Beispielpublic 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; } }}
![Page 13: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/13.jpg)
Eine Seite mit Velocity bauen (2) Beispiel...#set ( $headings = ["Title", "Dept", "Author", "Url","Body"," "] )
#if ($entries)<table> <tr> <td> <table cellspacing="1" cellpadding="1"> <tr> #foreach ($heading in $headings) #headerCell ($heading) #end </tr> #foreach ($entry in $entries) <tr> #entryCell ($entry.Title) #entryCell ($entry.Dept) #entryCell ($entry.Author) #entryCell ($entry.Url) #entryCell ($entry.Body) <td><a href="$link.setPage("Form.vm").addPathInfo("rdfid", $entry.RdfId)">Edit</a></td> ...
![Page 14: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/14.jpg)
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
![Page 15: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/15.jpg)
Eine Seite mit Velocity bauen (3) Request
Insert.vmrequest: screen.vm
Default.vm (Layout)
DefaultTop.vm
Menu.vm
DefaultBottom.vm
![Page 16: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/16.jpg)
Eine Seite mit Velocity bauen (4) Actions
Aufruf einer Action Java-File wird ausgeführt, z.B http://.../Index.vm/action/SQL
Erst dann wird die Screen-Class und das .vm-Template ausgeführt
![Page 17: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/17.jpg)
Eine Seite mit Velocity bauen (4) Beispielpublic 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(); }
![Page 18: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/18.jpg)
Docs http://jakarta.apache.org/turbine/turbine-2.3/fsd.html
http://jakarta.apache.org/turbine/turbine-2.3/howto/velocity-site-howto.html
http://jakarta.apache.org/velocity/user-guide.html
http://jakarta.apache.org/velocity/api/index.html
http://www.franken.de/de/veranstaltungen/kongress/2001/turbine.pdf
![Page 19: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/19.jpg)
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
![Page 20: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/20.jpg)
Übersicht über Services (1) Assembler Broker Service Cache Service Castor Service FreeMarker Service Intake Service JSP Service Localization Service Logging Service
![Page 21: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/21.jpg)
Übersicht über Services (2) MimeType Service Pool Service Resources Service RunData Service Scheduler Service Security Service Template Service Upload Service
![Page 22: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/22.jpg)
Übersicht über Services (3) Velocity Service XSLT Service UI-Manager Service
http://jakarta.apache.org/turbine/turbine-2.3/services/index.html
![Page 23: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/23.jpg)
UI Manager (1) Service für die Benutzerschnittstelle
Ähnlich den CSS-Files
Wird in Template-Files eingebunden
Eigene Skin-Files
![Page 24: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/24.jpg)
UI Manager (2) pathoftdk/webapps/newapp/resources/
ui/skins/default/skin.props
z.B.: bgcolor = #FFFFFF
Template-File öffnen
<img src=„$ui.image($ui.imagename)“>
![Page 25: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/25.jpg)
Torque – ein Überblick
1. Datenbankunabhängige XML-Beschreibung des Datenschemas
2. Generierung von Klassen
Datenbankabfragen ohne explizites SQL möglich
Unterstützung vieler Datenbankanbieter
![Page 26: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/26.jpg)
Sicherheit und Benutzerkonzept (1)
Ausgeklügeltes Benutzerkonzept mit Rechten: individuelle Aktionen Rollen: Vereinigung von verschiedenen
Rechten Gruppen: weitere Aufteilung in horizontaler
Richtung
![Page 27: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/27.jpg)
Ablauf des Benutzerkonzeptes (1)
Bedingungen: Auszuführende Methoden mit Namensmuster do<Name der Action>
Erben von SecureAction, SecureScreen, usw.
![Page 28: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/28.jpg)
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.
![Page 29: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/29.jpg)
Ein kurzer Blick in die Datenbank TURBINE_USER TURBINE_PERMISSION TURBINE_ROLE TURBINE_GROUP TURBINE_ROLE_PERMISSION TURBINE_USER_GROUP_ROLE
![Page 30: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/30.jpg)
Beispiel zur Handhabung//User von RunDataUser user = data.getUser();
// AccessControlList Object von RunDataAccessControlList 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");}
![Page 31: TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.](https://reader036.fdocument.pub/reader036/viewer/2022070507/570491bf1a28ab14218d831e/html5/thumbnails/31.jpg)
EndeVielen Dank für Eure
Aufmerksamkeit!