Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts?...

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