Turbine Konzepte und Dienste

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Pflege der Internetdienste
Objektorientierte Programmierung
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Tomcat Web-Server installieren
Java 2 Enterprise Edition (J2EE)
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
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.
Java: Grundlagen der Sprache
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Dynamische Webseiten Java servlets.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
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.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
YouTube5 .0 Projektpräsentation
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
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
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Sesame Florian Mayrhuber
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Turbine Konzepte und Dienste
- Velocity Template Engine
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Java Server Pages Sergej Keterling
Oliver Spritzendorfer Thomas Fekete
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
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
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext.
Webbasierte Verwaltung von Raumbelegungen
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Exploiting Web Applications
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
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
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
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.
 Präsentation transkript:

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

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

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

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)

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

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

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

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

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)

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

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

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

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

Zustandsinformation in URL kodieren Session ID wird im URL kodiert, z.B. durch Extra Pfad Info (die das Servlet versteht) http://server:80/servlet/MyServlet/123 Zusätzlichen Parameter http://server:81/servlet/MyServlet?sessionid=123 Eigene Notation http://server:82/servlet/MyServlet;$sessionid$123

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Docs http://jakarta.apache.org/turbine/ TDK How-To‘s http://jakarta.apache.org/turbine/turbine-2.3/apidocs/index.html

Ende Vielen Dank für Eure Aufmerksamkeit!