View
103
Download
0
Category
Preview:
Citation preview
Struts
Seminar
Javabasierte Webanwendungen
Tobias Kutzler 2
Überblick
Historie Was ist Struts? Model Controller View Zusammenfassung
Tobias Kutzler 3
Historie
2000: Craig R. McCalahan Entwicklung eines MVC Frameworks für Java-
Plattform Januar 2001:
Apache Software Foundation veröffentlicht MVC Framework: Struts
Teil von Jakarta: Server-Lösungen für Java Plattform (z.b. Apache Tomcat)
Tobias Kutzler 4
Was ist Struts?
Model-View-Controller Framework Kompatibel zur J2EE Plattform Basis: JSP- und Servlet-Technologie Teil des Jakarta Projekts (Apache Software
Foundation) Keine Implementierung eines eigenen MVC-
Konzepts notwendig
Tobias Kutzler 5
Was ist Struts?
Konzept und AufbauPräsentation und Interaktion
ViewStruts Tag Library
JSP
ControllerActionServlet
Action
KonfigurationXML
RessourcenProperties Files
Dienste und Datenhaltung
Model (Status und Dienste des Systems)ActionForm und JavaBeans
Tobias Kutzler 6
Model
Datenmodell der Anwendung Methoden zur Datenbearbeitung und –
verarbeitung Repräsentation des aktuellen Zustands der
Applikation JavaBeans ActionForms
Tobias Kutzler 7
Model
JavaBeans Klassen mit Einhaltung von Namens-
konventionen bei Methoden und besondere Ereignisbehandlung
Wiederverwendbare Java Komponenten Kapselung der (Verarbeitungs-) Logik einer
Webapplikation Unterscheidung
Visuelle Beans Nichtvisuelle Beans
Tobias Kutzler 8
Model
JavaBeans - Merkmale Properties: Repräsentation der
Objekteigenschaften Methoden zur Bearbeitung von Prozessen und
logischen Operationen Ereignisse: Kommunikation zwischen Beans und
anderen Objekten Statuspersistenz: Speicherung des Bean-
Zustandes
Tobias Kutzler 9
Model
JavaBeans – Anwendung: Struts: nichtvisuelle Beans System-State-Beans (Login) Business-Logic-Beans (z.b.
Datenbankoperationen) ActionForm-Beans
Tobias Kutzler 10
Model
ActionForm-Beans Abbildung von Eingabeformularen in ActionForm-
Bean Speicherung und Verarbeitung der Eingaben Jedes Formularfeld Property in Bean validate(): Prüfung der Eingaben reset(): Zurücksetzen der Werte
Tobias Kutzler 11
Controller
Steuerung der Verarbeitung/Weitergabe Anwendungslogik (Bean) oder View
Bestandteile ActionServlet ActionMapping struts-config.xml Klassen, die von Klasse Action abgeleitet
Tobias Kutzler 12
Controller
Identifikation der Elemente einer Struts Anwendung über logische Namen (Mapping)
struts-config.xml Zuordnung logischer Namen zu Java Server
Page, Servlet, Klasse Start der Anwendung: Einlesen erzeugt Mapping-
Tabelle
Tobias Kutzler 13
Controller
ActionServlet Ablaufsteuerung Action-Objekte: Ausführung spezieller Aufgaben ActionForm-Beans: Speicherung und Validation
von HTML-Formular Daten ActionForward-Klassen: Weiterleitung des
Programmflusses (View oder anderer Controller)
Tobias Kutzler 14
Controller
ActionMapping Mapping-Table (basierend auf struts-config.xml) Zuordnung von Requests zu Action-Klassen Bereitstellung einer Menge möglicher
Weiterleitungs-Adressen (ActionForwards) ActionForward
Weiterleitung des Nutzers auf neue Seite
Tobias Kutzler 15
Controller
Action Logische Anfrage Action-Klasse Verarbeitung des Requests, Rückgabe eines
ActionForward-Objekts (Identifikation der „nächsten“ Seite als logischer Name)
perform() Umsetzung Aufruf der Geschäftslogik: JavaBean
Tobias Kutzler 16
ControllerClient
Anfrage
Controller(ActionServlet)
View(JSP)
ActionMappingAction Action Action struts-config.xml
ModelBean
Bean
Bean
Antwort
web.xml
Struts-Tag-Bibliothek
PropertiesFile
Tobias Kutzler 17
Controller
Zusammenfassung Aufruf mittels URI (z.b. http://server.com/login.do) ActionServlet: Suche eines passenden
ActionMappings Properties aus Eingabeformular in ActionForm-
Bean Aufruf von perform(): Verarbeitung durch Action
und Rückgabe von ActionForward Weiterleitung an View
Tobias Kutzler 18
View
Darstellung der Daten Java Server Pages Ausgabe: HTML, XML, JavaScript Struts: Erweiterung der Funktionalität durch
Tag-Bibliotheken Erstellung von Formularen Interaktion von ActionForm-Beans Fehlerbehandlung
Tobias Kutzler 19
View
Tags Erweiterbarkeit der JSP-Tag Library Definition in Tag Library Files (*.tld) Pro Tag eine Java-Klasse mit Properties Erzeugung von HTML für Client
Tobias Kutzler 20
View
Bean-Tags Zugriff auf Beans und deren Properties (get/set)
<jsp:useBean id=„mybean“ class=„myBean“/> HTML-Tags
Erzeugen des HTML-Codes von Eingabeformularen <html:form> <html:select> <html:input> …
Tobias Kutzler 21
View
Logic-Tags Bedingte Textausgabe Iteration über Objekt-Collections Anwendungsfluss-Management <logic:iterate> Iteration <logic:present> Existenzprüfung
Tobias Kutzler 22
Zusammenfassung
Vorteile: Komplexe Webanwendung wird in kleine
Komponenten aufgeteilt (Bottom Up) Anwendung leicht erweiterbar und Komponenten
durch Trennung wiederverwendbar Open Source Für grosse Anwendungen geeignet
Bei Wachstum der Anwendung bleiben Überblick und Variabilität erhalten
Tobias Kutzler 23
Zusammenfassung
Nachteile Aufteilung der Anwendung in Komponenten
hohe Komplexität Noch in Weiterentwicklung und Veränderung
Änderungen im Code möglicherweise nötig
Tobias Kutzler 24
Quellen
Struts User Guide jakarta.apache.org/struts
Sebastian Stein: Das Struts Framework der Apache Software Foundation (Studienarbeit, BA Mannheim)
Marcel May, Daniel Marques, Dr. Roland Huß: Workshop: Struts in der Praxis
Recommended