Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Turbine Konzepte und Dienste

Ähnliche Präsentationen


Präsentation zum Thema: "Turbine Konzepte und Dienste"—  Präsentation transkript:

1 Turbine Konzepte und Dienste
(insb. Velocity Integration) Julian Wank Gerald Rogl

2 Inhalt Einführung MVC Torque Turbine Services Upload Service
Users and Security Velocity oder JSP Sessions

3 Inhalt (2) Java Files und Templates Eine Seite mit Velocity bauen
Wie Templates gefunden werden Templates und Actions Ausführungsreihenfolge Loader User Login Velocity Context Automatisch erzeugte Objekte Eigene Objekte hinzufügen Wichtige Pfade Docs

4 Einführung Open Source Server-Side Java Framework
Kostenlos Quellcode ist frei verfügbar Server-Side Java Framework Erlaubt schnelles und sicheres bauen von Web Applicationen Teile auch einzeln verwendbar TDK beinhaltet Servlet Runner Tomcat 4.0 Object-Relational Mapping Layer (Torque) Presentation Layer (Velocity oder JSP)

5 Model-View-Controller (MVC)
Design Pattern (Entwurfsmuster) Architektur von Graphischen Benutzeroberflächen Webgestützten Anwendungen Trennung von Daten – Business Logic (Model) Präsentation – User Interface (View) Ablaufsteuerung (Controller)  Bestandteile separat entwickeln

6 Für die View empfiehlt Sun den Einsatz von Java Server Pages (JSPs)
Daten werden aus Model geholt (an Stelle von speziellen Tags), und in die HTML-Seite eingefügt (Pull-MVC) Push-Strategie: Model kümmert sich um die Aktualität der View Controller Wird meist durch Servlet repräsentiert (reagiert auf Nutzerinteraktion mit der View und ruft entsprechende Methoden des Models auf) VT: HTML Designer kann GUI ändern ohne den Java Code anzurühren

7

8 Torque Kreiert SQL Daten-Schema für DB
Kreiert Java Object Source Files Tabelle  Klasse (nicht ändern!) (Business Objects müssen in XML modelliert sein) Alles weitere  Team 3

9 Turbine Services Als Interface verwirklicht  Erweiterbarkeit einfach
Ähnliches Service erweitern Neues Service schreiben (implements yourInterface extends TurbineBaseService) Über 25 eingebaute Services Upload Service Security Service Logging Service Cache Service Crypto Service

10 Upload Service Einstellen (im TurbineResources.properties)
Ob files automatisch durch den ParameterParser angenommen werden Wo files vorläufig gespeichert werden sollen Die max. Größe einer Anfrage die noch bearbeitet werden soll Die max. Größe die ge-cashed wird (durch die TurbineUploadService class)

11 Pfad im System setzen, wo sich das repository befindet
Ein HTML File kreieren, dass als User-Interface dient Wenn FileItem kreiert wurde können die public-methoden darauf zugreifen und mit ihm arbeiten Um temporär gespeicherte Daten muss man sich nicht kümmern, da das Service einen eigenen „Garbage Collector“ hat

12 Users and Security Security Model ab Turbine 2 User Group Role
Permission ab Turbine 2 org.apache.turbine.services.security Package

13 Velocity oder JSP Designer hat die Wahl der Präsentations-Sprache
JSP (Java Server Pages) Etablierter Standard von Sun Microsystems Existierende Konfiguration anpassen Velocity Einfacher zu arbeiten Auf Turbine zugeschnitten Zusätzliche Power von JSP wird hier nicht vermisst

14 Sessions Problem: Zustandslosigkeit von HTTP
Es gibt keine „Sessions“  jede Anfrage wird individuell und unabhängig von anderen betrachtet Auch für „Nicht-DBMS-Anwendungen“ ein Problem (Präsentieren der Ergebnisse einer Suche in Teilen) Verschiedene Varianten, Zustandsinfos in Abfragen „einzubauen“ Zustandsinformation in URL kodieren Cookies Autorisation des Benutzers Versteckte Felder in Formularen Java Servlet Session Tracking API

15 Zustandsinformation in URL kodieren
Session ID wird im URL kodiert, z.B. durch Extra Pfad Info (die das Servlet versteht) Zusätzlichen Parameter Eigene Notation

16 Cookies Sie werden am Client gespeichert (falls der Benutzer das erlaubt) Beschränkungen 20 Cookies pro Site 300 Cookies insgesamt pro User Größe je Cookie maximal 4096 bytes

17 Session Attribute Damit können serverseitig Werte gespeichert werden
Sie sind nützlich um Dinge wie Login-Infos oder Warenkörbe zu implementieren

18 Java Files und Templates
Request  Turbine Servlet Request Brokering Build Context Object Call Velocity Template Engine

19 Java Files und Templates 2 Eine Site mit Velocity bauen
Screen Java Code in WEB-INF/classes compilieren .vm – Template mit selben Namen erzeugen Unter templates/screens/… speichern Hier BODY-Teil der Seite TurbineResources.properties editieren WEB-INF/conf module.packages=org.apache.turbine.modules, com.yourcompany.app.modules „classpath“ für Turbine

20 Java Files und Templates 3 Eine Site mit Velocity bauen
Ausführung Request z.B. HelloWorld class ausgeführt (Klasse muss von VelocityScreen erben) Velocity Template Engine aufgerufen und HelloWorld.vm ausgeführt

21 Java Files und Templates 4 Eine Site mit Velocity bauen
Layout und Navigation Java Klassen erben von VelocitySiteLayout und VelocitySiteNavigation .vm Files werden im templates/layout bzw. /navigation Verzeichnis gespeichert Wichtig: Default.vm enthält das Gesamtlayout indem Menüs, Navigation etc. als Variable in eine Struktur eingefügt werden /templates/…/layouts/Default.vm

22 Wie Templates gefunden werden
data.getParameters().getString("template") liefert Pfad zum Template Screen, Navigation und Layout werden gesucht, beginnend im selben Verzeichnis wie Template Selber Name Default Wenn die Template Variable nicht existiert, wird VelocityScreen und templates/screens/index.vm ausgeführt

23 Templates und Actions Action – Parameter im URI z.B. template/HelloWorld.vm/action/UpdateWorld  UpdateWorld Java File ausgeführt Actions werden vor Screen ausgeführt Erst danach Screen Class und .vm Template Actions liefern nichts zurück, können aber in den Message String des RunData Objekts schreiben z.B. data.setMessage("Username does not exist")

24 Ausführungsreihenfolge
HTTP Client Request Ausführen des Turbine Servlets Ausführen Page Modul – Wenn Action  ausführen Screen Objekt nach Layout fragen Layout ausführen - Layout führt Screen („Body“) aus Layout führt Navigation Modul aus Seite wird zurückgeliefert

25 Ausführungsreihenfolge - Loader
Loader – wozu? Dynamisches Laden der fünf Module Trennung von Code und Framework - Vorteile Update des Frameworks Distribution des Codes alleine Web-App. Module bleiben in deren Package Pfad Loader Classpath WEB-INF/conf  TurbineResource.properties  MODULE PACKAGES  hier eigene Module hinzufügen

26 Ausführungsreihenfolge – User Login
Konfiguration: TurbineResources.properties  Framework Settings Nachdem Session eingerichtet ist, werden Daten im RunData Objekt gespeichert ($data) Turbine Servlet führt LoginUser Action aus Turbine Servlet führt DefaultPage aus

27 Velocity Context – automatisch erzeugte Objekte
RunData Objekt Keyword: data bzw. $data Interface zur Laufzeitinformation Ein Objekt pro Request TemplateLink Objekt Keyword $link Konvertierung von Links in Referenzen TemplatePageAttributes Objekt Keyword $page Änderung von HTML Attributen

28 Velocity Context – eigene Objekte hinzufügen
import org.apache.velocity.context.Context; import org.apache.turbine.util.RunData; doBuildTemplate(RunData data, Context context) context.put("hello",new String("testing")); Im Template: $hello the hello reference Output: testing the hello reference

29 Wichtige Pfade Default Layout
webapps/APPNAME/templates/app/layouts/Default.vm Definiert wie das default layout angezeigt wird Files die in das layout template eingefügt werden webapps/APPNAME/templates/app/navigations

30 Wichtige Pfade (2) Files in diesem Verzeichnis sind die die "$screen_placeholder ersetzen webapps/APPNAME/templates/app/screens Makros für HTML Fragmente #webapps/APPNAME/templates/app/GlobalMacros.vm Java file die sich auf Index.vm beziehen webapps/APPNAME/WEB-INF/src/java/PACKAGE/modules/screens

31 Wichtige Pfade (3) Java files für Action Module Datenbank-Schema
webapps/APPNAME/WEB-INF/src/java/PACKAGE/modules/actions Datenbank-Schema webapps/APPNAME/WEB-INF/conf Build file (z.B. nach Änderung des DB Schemas ausführen) webapps/APPNAME/WEB-INF/build "ant compile" kompiliert Java files neu

32 Wichtige Pfade (4) Java files die benutzt werden, um auf die Datenbank zuzugreifen webapps/APPNAME/WEB-INF/src/java/PACKAGE/om TurbineResource.property file webapps/APPNAME/WEB-INF/conf

33 Docs http://jakarta.apache.org/turbine/
TDK How-To‘s

34 Ende Vielen Dank für Eure Aufmerksamkeit!


Herunterladen ppt "Turbine Konzepte und Dienste"

Ähnliche Präsentationen


Google-Anzeigen