Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

der Universität Oldenburg
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Internet-Datenbanken
eXist Open Source Native XML Database
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Dynamische Datentypen
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.
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.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
eFormsDirect XML-basiertes eGovernment-Framework
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
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.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Konzeption und Realisierung einer
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
Martin Köllner XMLCompany Cocoon XMLCompany Apache Cocoon Web Publishing Framework.
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
Seminar Internet - Technologie
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Mahmoud Zoabi Khaled Isa
Bean Validation JSR-303 Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Sesame Florian Mayrhuber
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
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)
CMS-Kolloquium am 10. Januar 2006
Frameworks zur Implementierung von Hypertext Anwendungen
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
1 Einführung TOMCAT Entwicklung Technischer Informationssysteme SS 2003 Florian Müller.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Frameworks
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
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
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Freelance Cakephp Programmierer. Wir empfehlen das CakePHP System, um eine schnelle Entwicklung von Webanwendungen sicherzustellen. CakePHP ist ein bewährtes.
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
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.
© 2012 TravelTainment Einführung in Spring Web MVC Seminarvortrag Sebastian Hesse
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Verteilte Anwendungen: J2EE
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
 Präsentation transkript:

Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt

Hänchen & Partner GmbH 2 Struts Übersicht Das Struts Framework ? Das Action Servlet Die Action Form Klassen Die Action Klassen Die Struts Konfiguration

Hänchen & Partner GmbH 3 Struts Übersicht Open Source Framework für Web-Anwendungen Teil des umfangreichen Apache Jakarta Projekts Struts: bautechnischer Ausdruck (engl.) für Verstrebungen, Abstützungen Basiert auf Standard Java APIs Aktuelle Version ist Struts 1.1 rc2, diese benötigt: JDK ab 1.2 Servlet API ab 2.2 JSP ab 1.1 XML Parser, kompatibel zu JAXP ab 1.1 Einen Teil der Jakarta Common Packages

Hänchen & Partner GmbH 4 Motivation - Warum noch ein Framework? Bewährte Architekturen und Entwurfsmuster können benutzt werden, anstatt sie immer wieder neu zu implementieren. Erleichterung von Standardaufgaben in Web-Anwendungen: Formularbehandlung Mehrsprachigkeit Schnellere Entwicklungszeiten Statt unschönem HTML-Code (hoffentlich) schönere JSP CustomTags

Hänchen & Partner GmbH 5 Was bietet Struts? MVC Architektur (Model 2) Model: z.B: JavaBeans, EJBs, Datenbank, EIS,... View: JSP Controller: Teile von Struts und eigene Controller Klassen Mehrsprachigkeit JSP Taglibs Server- und clientseitige Eingabevalidierung möglich XML basierte Konfiguration für die Formularnavigation Tiles Framework zur Steuerung des Layouts Deklaratives Exception Handling

Hänchen & Partner GmbH 6 Architektur ActionServlet ActionForm Action JSP TagLibs struts-config.xml Action ActionForm JSP http respons e Controller View Model http request Struts Anwendung

Hänchen & Partner GmbH 7 Das Struts Framework Die Action Form Klassen Die Action Klassen Die Struts Konfiguration Das Action Servlet Struts Übersicht ?

Hänchen & Partner GmbH 8 Aufgaben Zentrale Controller Instanz der Struts Web-Anwendung Wird über ein Konfigurationsfile (struts-config.xml) gesteuert Nimmt Parameter aus den Formularen entgegen und füllt damit die ActionForm Objekte Leitet die ActionForm Objekte nach erfolgreicher Validierung an die Action Objekte weiter

Hänchen & Partner GmbH 9 Registrierung in der Web Anwendung... action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml action *.do... Struts Konfigurationsdatei web.xml

Hänchen & Partner GmbH 10 Das Struts Framework Die Action Klassen Die Struts Konfiguration Die Action Form Klassen Das Action Servlet Struts Übersicht ?

Hänchen & Partner GmbH 11 Übersicht ActionForm Erlauben eine einfache Übernahme der Formulardaten in die Properties einer JavaBean Klasse und umgekehrt die Vorbelegung von Formularfeldern mit Werten aus den JavaBean Properties. Für die Werte aus den HTML Eingabefeldern gibt es im ActionForm Bean gleichnamige Properties. Optional können die so übernommenen Eingabewerte in einer validate() Methode überprüft werden. Pro Formular kann eine solche ActionForm Klasse als Ableitung von org.apache.struts.action.ActionForm implementiert werden.

Hänchen & Partner GmbH 12 Beispiel Name... SimpleForm name wohnort validate() Verbindung durch die Namensgleichheit des JSP Tag Attribut-Werts und des JavaBean Property-Namens Verbindung zwischen der Aktion simpleInput und der Klasse SimpleForm laut struts-config.xml SimpleForm.jsp ActionForm

Hänchen & Partner GmbH 13 Validierung und Fehlerbehandlung (1) public class SimpleForm extends ActionForm { private String wohnort; private String name; Getter und Setter Methoden... public ActionErrors validate(ActionMapping map, HttpServletRequest req) { ActionErrors errors = new ActionErrors(); if((wohnort == null) || (wohnort.length() < 3)) { errors.add("wohnort", new ActionError("error.city.tooshort")); } return errors; } Textschlüssel (I18N) Ein leeres errors Object steht für eine erfolgreiche Validierung SimpleForm.java Implementierung der validate() Methode ist optional

Hänchen & Partner GmbH <html:form.... Validierung und Fehlerbehandlung (2) Das Tag benötigt diese beiden Textschlüssel Mit diesem Tag werden alle Fehlermeldungen im ActionErrors Object ausgegeben errors.header = Eingabefehler errors.footer = error.city.tooshort = Der Ortsname muss aus mindestens 3 Zeichen bestehen Resource_de.properties SimpleForm.jsp

Hänchen & Partner GmbH 15 Validierung und Fehlerbehandlung (3) Neben der validate() Methode in der ActionForm Klasse kann die Validierung auch deklarativ über eine XML Datei erfolgen. Dazu beinhaltet Struts eine Reihe von Standard-Validatoren (z.B. für Beträge, Zahlen, Adresse,...) und stellt dazu Standard-Fehlermeldungen bereit. Einer dieser Validatoren ("mask") kann über Regular Expressions parametrisiert werden. Damit lassen sich die meisten Einzelfeldprüfungen realisieren. Mit einem Eingabefeld können mehrere Validatoren verknüpft werden.

Hänchen & Partner GmbH 16 JSP Custom TagLibs in Struts Struts beinhaltet mehrere JSP Tag-Libs: HTML Tags Form Tags (z.B., ) Messages, Error Messages Tag Attribute für JavaScript (z.B. Event Handling) Mehrsprachigkeit Bean Tags Manipulation und Ausgabe von JavaBeans Logic Tags Vergleichsoperationen, Iteratoren, etc. In der J2EE1.4 wird die JavaServer Pages Standard Tag Library (JSTL) enthalten sein. Die meisten der Struts Bean- und Logic-Tags können dann durch JSTL Tags ersetzt werden.

Hänchen & Partner GmbH 17 Das Struts Framework Die Struts Konfiguration Struts Übersicht Die Action Klassen Die Action Form Klassen Das Action Servlet ?

Hänchen & Partner GmbH 18 Übersicht Action Sind Teil des Contollers und stellen die Verbindung zum Model her Werden abgeleitet von org.apache.struts.action.Action Bearbeiten den Request bzw. die Daten aus dem ActionForm Objekt Erzeugen eine Ausgabe über den Response oder leiten zu einer Ausgabeseite weiter Müssen Thread-Safe sein, da das Struts Framework nur eine Instanz pro Klasse hält Das gewünschte Verhalten wird durch Überschreiben der execute() Methode implementiert

Hänchen & Partner GmbH 19 Die execute Methode public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { ActionForward retFwd; if( ((LoginForm)form).getUserId().equals("Wombat11")) { retFwd = mapping.findForward("success"); } else { retFwd = mapping.findForward("register"); } return retFwd; } Business Logik Zeile Mapping Namen für die Folgeseite SimpleAction.java

Hänchen & Partner GmbH 20 Das Struts Framework Struts Übersicht Das Action Servlet Die Struts Konfiguration Die Action Klassen Die Action Form Klassen ?

Hänchen & Partner GmbH 21 struts-config.xml <form-bean name="simpleForm" type="hup.kurs.struts.forms.SimpleForm"/> Anwendungs-globales Mapping von Namen auf Seiten Zuordung von Formularnamen zu ActionForm Klassen (diese Namen werden im action- mapping benötigt) Konfiguration einer Aktion struts-config.xml

Hänchen & Partner GmbH 22 Action Mapping <action path="/simpleInput" type="hup.action.SimpleAction" name="simpleForm" scope="request" input="/SimpleForm.jsp" validate="true" > Mapping Name laut web.xml URL-Mapping Klassenname der Action-Subklasse Name der vorher definierten ActionForm Diese Seite wird bei nicht erfolgreicher Validierung angezeigt validate() in der ActionForm aufrufen In der Action Klasse lokal gültige Namen für Weiterleitungen struts-config.xml

Hänchen & Partner GmbH 23 Mehrsprachigkeit Name (Prefix) der Property-Files mit den Text-Ressourcen... label.city = Wohnort... Resource_de.properties StrutsForm.jsp Textschlüssel für die Struts-Tags struts-config.xml

Hänchen & Partner GmbH 24 Hinweise Das Erstellen der Konfigurationsdatei ist sehr fehlerträchtig, die XML Attributnamen sind oft wenig intuitiv. Visuelle Struts Editoren gibt es z.B. im WSAD 5.0 und als OpenSource Projekte. Der Aufruf einer JSP mit Struts Tag-Libs setzt ein initialisiertes ActionServlet voraus (ohne dass dieses schon gerufen wurde), das ActionServlet sollte daher beim Start des Servers geladen werden ( im web.xml).

Hänchen & Partner GmbH 25 Referenzen Struts Home Freies GUI Frontend für die Struts-Konfiguration Struts Schulung/Workshop Schulung/schulung.html IBM WebSphere Studio Application Developer (grafischer Struts Builder) software/awdtools/studioappdev/

Hänchen & Partner GmbH 26 Web-Anwendungen mit dem Jakarta Struts Framework Noch Fragen?

Hänchen & Partner GmbH 27 Calwer Strasse 1 D Böblingen Tel.: +49-(0)