Einleitung. Gliederung. Struts-Framework. Model-View-Controller-Pattern



Ähnliche Dokumente
Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

4 Arbeiten mit einfachen Actions

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Softwareentwicklung mit JAVA EE

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Struts 2 Das Imperium schlägt zurück?

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Application Frameworks

Java - Webapplikationen

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

JSP und Servlet Programmierung

Internet und WWW Übungen

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Benutzerdokumentation Web-Portal

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Existierende Systeme I Bibliotheken & Frameworks

Datenverwaltung Darstellung Interaktion. WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Torsten Walter. 10.

Java Webentwicklung (mit JSP)

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Java zur Realisierung von Internetanwendungen

Web 2.0 Software-Architekturen

Planung für Organisation und Technik

Programmierung von Client/Server- Anwendungen

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

6.9 Java Server Pages

Web- Applikationen. in Java-Web

Liste V Enterprise JavaBeans

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Softwareentwicklung mit JAVA EE

Eine Anwendung mit InstantRails 1.7

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

Guide DynDNS und Portforwarding

Struts Java-Framework für Webapplikationen

Es wird das Struts <html:options> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Der lokale und verteilte Fall

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Spring Dynamic Modules for OSGi Service Platforms

Vertiefte Grundlagen Graphentheorie

WebService in Java SE und EE

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

FH LU JEE Vorlesung SS Ralf Gitzel

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Faclets. Eine alternative View Technologie um JSF Applikationen OHNE JSP zu entwickeln Wird unter java.net gehostet Open Source, CDDL Lizenz

Web-Anwendungsentwicklung mit dem Delivery Server

Lokale Installation von DotNetNuke 4 ohne IIS

Online Banking System

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Design Patterns 2. Model-View-Controller in der Praxis

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Server-centric vs. Client-centric Web Applications. BITKOM Software Summit 2014, Frankfurt

e-books aus der EBL-Datenbank

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Anwendung eines Enterprise Java Beans

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Datenbanksysteme SS 2007

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Das Model View Controller (MVC) Konzept

4D Server v12 64-bit Version BETA VERSION

Anleitung zur Webservice Entwicklung unter Eclipse

HTML Formulare. Benutzerschnittstelle für interaktive Webseiten

Java Server Pages (JSP)

Applications Applets (eingeschränkte Rechte)

25 Import der Beispiele

- XPages 2.0? René Winkelmeyer

Internet Explorer Version 6

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Architektur des agimatec-validation Frameworks

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI

Powermanager Server- Client- Installation

How To Einbinden von Kartendiensten in eine Java Applikation mit Hilfe des JXMapKit

OP-LOG

Design Patterns MVC. Marcus Köhler Markus Merath Axel Reusch. Design Patterns MVC Marcus Köhler Markus Merath Axel Reusch Seite 1

Leitfaden zur Nutzung des Systems CryptShare /Sicheres Postfach

Java: Vererbung. Teil 3: super()

Themen. Web Service - Clients. Kommunikation zw. Web Services

Ein mobiler Electronic Program Guide

SAP NetWeaver Gateway. 2013

Transkript:

Struts-Framework Model-View-Controller-Pattern STRUTS Open Source Web Application Framework Unterprojekt des Apache Jakarta Basierend auf: JSP, Servlets, JavaBeans Model View Controller Architektur Dipl.-Inf. (FH) Albina Thyen 1 Dipl.-Inf. (FH) Albina Thyen 3 Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Dipl.-Inf. (FH) Albina Thyen 2 Einleitung Bestandteile der Struts Java Servlets Java-Programme, die auf einem Web-Server (z.b. Apache Tomcat) laufen Java Server Pages (JSP) Text-Dokumente, wo neben dem HTML-Code zusätzlicher Java-Code vorhanden ist Java Beans Klassen, die für ihre Ereignis-Verarbeitungen und Methoden bestimmte von Sun festgelegte Namenskonventionen einhalten müssen Dipl.-Inf. (FH) Albina Thyen 4

Einleitung Vorteile des Struts- Frameworks basiert auf einer Reihe von "Best Practice" Design Patterns Verringerung des Aufwandes für die Entwicklung, Pflege und Weiterentwicklung von Webapplikationen. von allen J2EE kompatiblen Application Server unterstützt. getrennte Planung und Entwicklung durch die MVC-Architektur. MVC-Paradigma Model Controller View Dipl.-Inf. (FH) Albina Thyen 5 Dipl.-Inf. (FH) Albina Thyen 7 Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts MVC-Paradigma Vorteile von MVC Model kann unabhängig von View und Controller entwickelt werden Model kann ohne Änderungen der View und Controller gewechselt werden Flexibilität durch Kombinierbarkeit der Komponenten Bessere Wartbarkeit und Wiederverwendbarkeit Dipl.-Inf. (FH) Albina Thyen 6 Dipl.-Inf. (FH) Albina Thyen 8

MVC-Paradigma Struts-Framework mit MVC MVC bei Java-Webanwendungen JSP Model 1 Architektur Browser 1 Anfrage 4 Antwort <View/Controller> JSP 2 <Model> JavaBean Application Server 3 Datentransfer Data Sources http-anfrage ActionServlet Controller strutsconfig.xml ActionForm ActionForm ActionForm Action Action Action Action Model http-antwort TagLibs JSP JSP View Struts Anwendung Dipl.-Inf. (FH) Albina Thyen 9 Dipl.-Inf. (FH) Albina Thyen 11 MVC-Paradigma Browser JSP Model 2 Architektur 1 Anfrage 6 Antwort <Controller> Servlet 4 weiterleiten <View> JSP Application Server 2 erzeugt <Model> JavaBean 5 liest Daten Data Sources 3 Datentransfer Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Dipl.-Inf. (FH) Albina Thyen 10 Dipl.-Inf. (FH) Albina Thyen 12

Der Controller setzt sich bei Struts aus mehreren Teilen zusammen: ActionServlet RequestProcessor ActionForms Actions struts-config.xml Dipl.-Inf. (FH) Albina Thyen 13 Konfiguration über web.xml <web-app> web.xml <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.actionservlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml </param-value> </init-param> Struts Konfigurationsdatei </servlet> Dipl.-Inf. (FH) Albina Thyen 15 ActionServlet dient als zentraler Eintrittspunkt für alle Requests leitet Request und Response für die Steuerung des weiteren Ablaufs an den RequestProcessor weiter RequestProcessor ist für den Aufruf von Action-Klassen und für die Weiterleitung an JSP verantwortlich Zur Ermittlung von Action und JSP- Seiten wird der RequestProcessor über die Datei struts-config.xml konfiguriert Dipl.-Inf. (FH) Albina Thyen 14 Dipl.-Inf. (FH) Albina Thyen 16

ActionForms kapselt Formulardaten des Nutzers in einfache Java-Objekten ActionForms erben von org.apache.struts.action.actionform ActionForms werden nur dann verwendet, wenn sie in der Datei struts-config.xml konfiguriert wurden Dipl.-Inf. (FH) Albina Thyen 17 Actions public class CheckOutAction extends Action implements ActionConstants, SessionKeys, RequestKeys { } public ActionForward execute(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Profile profile = (Profile)request.getSession().getAttribute(PROFILE_KEY); ShoppingCart cart = (ShoppingCart)request.getSession().getAttribute( SHOPPING_CART_KEY); request.setattribute(order_id, Integer.toString(order.getId())); request.getsession().removeattribute(shopping_cart_key); return mapping.findforward(order_confirmation); } CheckOutAction.java Dipl.-Inf. (FH) Albina Thyen 19 Actions Schnittstelle zum Model erben direkt oder indirekt von der Klasse org.apache.struts.actions.action überschreiben die Methode execute() und erhalten eine Referenz auf ein ActionForm als Parameter struts-config.xml Die Datei struts-config.xml organisiert den Ablauf des Kontrollflusses eines Requests struts-config.xml legt fest, welche Action aufgerufen wird welche ActionForms verwendet werden welche JSP-Seite angezeigt wird Dipl.-Inf. (FH) Albina Thyen 18 Dipl.-Inf. (FH) Albina Thyen 20

struts-config.xml <form-beans> <form-bean name="queryresultsform" type="de.deicon.opensource.webapp.forms.queryresultsform"> </form-bean> <form-bean name="shoppingcartform" type="de.deicon.opensource.webapp.forms.shoppingcartform"> </form-bean> </form-beans> Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Dipl.-Inf. (FH) Albina Thyen 21 Dipl.-Inf. (FH) Albina Thyen 23 struts-config.xml <action-mappings> <action path="/createlogin" type="de.deicon.opensource.webapp.actions.logonaction" parameter="method" name="createloginform" scope="request" validate="true" input="login.create"> </action> </action-mappings> Struts: Model Der Zugriff auf die Daten des Models erfolgt über JavaBeans JavaBeans besitzen eine Menge privater Eigenschaften, die über öffentliche get() und set()- Methoden manipuliert bzw. ausgelesen werden können. Zudem können sie noch beliebige Methoden besitzen die den Zustand der JavaBean beeinflussen. Dipl.-Inf. (FH) Albina Thyen 22 Dipl.-Inf. (FH) Albina Thyen 24

Struts: Model public class Book { private String isbn = null; private String title = null; private String authorname = null; public String gettitle() { return this.title; } public void settitle(string title) { this.title = title; } public String getisbn() { return this.isbn; } public void setisbn(string isbn) { this.isbn = isbn; } } Book.java Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Dipl.-Inf. (FH) Albina Thyen 25 Dipl.-Inf. (FH) Albina Thyen 27 Struts: Model Eine FormBean ist eine JavaBean, deren Properties mit den UIKomponenten eines HTML-Formulares korrespondieren. Die FormBean repräsentiert den serverseitigen Status des HTML Formulares. Es wird ermöglicht, die Daten, die in Java- Code vorliegen, zu validieren, auszulesen, zu manipulieren oder zu löschen. Der Zugriff innerhalb der View erfolgt über spezielle Struts-Tags in den JavaServer Pages Struts: View Wird durch JavaServer Pages repräsentiert. Tag-Bibliotheken erlauben Struts HTML- Output dynamisch zu gestalten. Neben den Struts-eigenen können auch die Java Standard Tag Library verwendet werden. Für die Dateieingabe in HTML-Formulare wird die Struts-HTML TagLib verwendet. In der HTML-TagLib befinden sich für alle HTML-Tags entsprechende Struts-Tags. Dipl.-Inf. (FH) Albina Thyen 26 Dipl.-Inf. (FH) Albina Thyen 28

Struts: View <%@ taglib uri="/web-inf/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/web-inf/struts-html.tld" prefix="html" %> <html:errors /> <html:form action="/dynvallogon" focus="userid"> <table><tr> <bean:message key="prompt.userid"/>: <td> <html:text property="userid" size="16" maxlength="18"/> </td></tr> Deployment von Struts-Anwendungen Für das Deployment müssen Webanwendungen eine bestimmte Struktur besitzen Webanwendungen können sowohl in gepackter als auch in ungepackter Form deployed werden <tr> <bean:message key="prompt.password"/>: <td> <html:password property="password" redisplay="false"/> Dipl.-Inf. (FH) Albina Thyen 29 Dipl.-Inf. (FH) Albina Thyen 31 Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Deployment von Struts-Anwendungen Struktur von Webanwendungen Web-Anwendung *.jsp WEB-INF *.tld web.xml struts-config.xml lib *.jar classes *.class ApplicationResources.properties Dipl.-Inf. (FH) Albina Thyen 30 Dipl.-Inf. (FH) Albina Thyen 32

Deployment von Struts-Anwendungen Im Deployment-Descriptor müssen das ActionServlet des Struts-Frameworks sowie die Taglibs angemeldet werden <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.actionservlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/web-inf/struts-config.xml</param-value> </init-param> </servlet> web.xml Dipl.-Inf. (FH) Albina Thyen 33 Deployment von Struts-Anwendungen Die für Struts benötigte Bibliotheken müssen ins /WEB-INF/lib-Verzeichnis kopiert werden: commons-beanutils.jar commons-collections.jar commons-digester.jar commons-fileupload.jar commons-logging.jar commons-validator.jar struts.jar Dipl.-Inf. (FH) Albina Thyen 35 Deployment von Struts-Anwendungen Deployment von Struts-Anwendungen Die Konfigurationsdatei struts-config.xml muss in das Verzeichnis WEB-INF kopiert werden Die Taglib-Descriptoren müssen ins Verzeichnis WEB-INF kopiert werden: struts-bean.tld struts-logic.tld struts-html.tld Konfiguration von Struts struts-config.xml Properties Files Controller View web.xml Web Application Modell Struts tag libraries Dipl.-Inf. (FH) Albina Thyen 34 Dipl.-Inf. (FH) Albina Thyen 36

Einleitung Model-View-Controller-Paradigma Struts: Model Struts: View Deployment von Struts-Anwendungen Projektentwicklung von Struts Projektentwicklung von Struts Struts Bibliotheken Struts ist ein Open-Source-Framework und unterliegt der Apache-License Die Struts Bibliotheken stehen unter http://struts.apache.org in zwei Varianten zum Download bereit: Binaries Source Code Dipl.-Inf. (FH) Albina Thyen 37 Dipl.-Inf. (FH) Albina Thyen 39 Projektentwicklung von Struts Benötigte Komponenten zwingend notwendig: Struts Bibliotheken Servlet Container sinnvoll: Entwicklungsumgebung mit Plug-In Application Server DBMS Projektentwicklung von Struts Servlet Container Struts läuft in jedem Servlet-Container, der die JavaServlet-Spezifikation erfüllt. Z.B.: IBM Websphere iplanet Allaire JRun Im Beispiel wird der Tomcat Server verwendet ist ebenfalls unter der Apache License erhältlich unter http://jakarta.apache.org/tomcat Dipl.-Inf. (FH) Albina Thyen 38 Dipl.-Inf. (FH) Albina Thyen 40

Projektentwicklung von Struts Unterstützung durch IDEs Eine Reihe von IDEs bieten eine Unterstützung des Entwicklungsprozesses mit Struts an Insbesondere für Eclipse existiert eine Reihe verschiedener Plug-Ins http://www.myeclipseide.com Struts-Framework & MVC-Pattern Vielen Dank für Ihre Aufmerksamkeit! Dipl.-Inf. (FH) Albina Thyen 41 Dipl.-Inf. (FH) Albina Thyen 43 Literaturhinweise Dieter Eickstädt,Thomas Reuhl:J2EE mit Struts & Co.,2004,Markt+Technik Joel Greenyer: Web-Applikationen mit Jakarta Struts http://www.jgreen.de/work/struts-seminar Web Anwendungen mit Struts http://www.kiltz.de/?menue=menuestruts&page=struts Was ist Struts? Entwicklung von Web Anwendungen http://www.laliluna.de/what-is-struts_de.html Neuerungen im Java-Framework Struts http://www.heise.de/ix/artikel/2006/03/125/ http://struts.apache.org/ - Startseite von Struts http://struts.apache.org/userguide/ - Struts User Guide http://www.husted.com/struts/tips/ -Struts-Tipps Dipl.-Inf. (FH) Albina Thyen 42