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

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Advertisements

Klassen - Verkettete Liste -
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Internet-Datenbanken
Datenbankzugriff im WWW (Kommerzielle Systeme)
eXist Open Source Native XML Database
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Internet-Technologien und Java
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Java-AG Ausnahmebehandlung Gerhard Gröger.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
Martin Köllner XMLCompany Cocoon XMLCompany Apache Cocoon Web Publishing Framework.
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
Wir bauen uns eine Webapplikation!
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Präsentation von Sonja Pathe
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
XML IV: Cocoon 2.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Turbine Konzepte und Dienste
Präsentation Velocity. Velocity Allgemein Templets Zusammenhang Templets Java Kontext $ UI $link.
- Velocity Template Engine
Turbine Konzepte und Dienste
Java Server Pages Sergej Keterling
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
3. Juni 2003Moritz Petersen Minimales Markup und Templates zur Erstellung von strukturierten Texten Ein Zwischenbericht zur Diplomarbeit.
CMS-Kolloquium am 10. Januar 2006
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Datenanbindung in Webapplikationen
Hibernate (OR-Mapping)
Einführung in Web Services Web Services in der Praxis
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Frameworks
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Oracle IFS Die Brücke zwischen Content Management System und einer Produktpräsentation im Internet.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Von Oracle Reports zum BI Publisher
 Präsentation transkript:

TURBINE

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

Architektur – MVC M odel V iew C ontroller

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

Konzepte PAGE LAYOUT NAVIGATION SCREEN ACTIONS + LOADERS

Vom Request zur Response...

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!!

Noch einmal MVC

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

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

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

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; }

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...

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

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

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

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(); }

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

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

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

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

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

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

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

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

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

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

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.

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

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"); }

Ende Vielen Dank für Eure Aufmerksamkeit!