24
Struts Seminar Javabasierte Webanwendungen

Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Embed Size (px)

Citation preview

Page 1: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Struts

Seminar

Javabasierte Webanwendungen

Page 2: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Tobias Kutzler 2

Überblick

Historie Was ist Struts? Model Controller View Zusammenfassung

Page 3: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Ü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)

Page 4: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 5: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 6: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Tobias Kutzler 6

Model

Datenmodell der Anwendung Methoden zur Datenbearbeitung und –

verarbeitung Repräsentation des aktuellen Zustands der

Applikation JavaBeans ActionForms

Page 7: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 8: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 9: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Tobias Kutzler 9

Model

JavaBeans – Anwendung: Struts: nichtvisuelle Beans System-State-Beans (Login) Business-Logic-Beans (z.b.

Datenbankoperationen) ActionForm-Beans

Page 10: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 11: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Tobias Kutzler 11

Controller

Steuerung der Verarbeitung/Weitergabe Anwendungslogik (Bean) oder View

Bestandteile ActionServlet ActionMapping struts-config.xml Klassen, die von Klasse Action abgeleitet

Page 12: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 13: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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)

Page 14: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 15: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 16: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 17: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 18: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 19: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 20: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 21: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

Tobias Kutzler 21

View

Logic-Tags Bedingte Textausgabe Iteration über Objekt-Collections Anwendungsfluss-Management <logic:iterate> Iteration <logic:present> Existenzprüfung

Page 22: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 23: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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

Page 24: Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung

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