Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
I. Inhalt
I. INHALT II
II. ABBILDUNGSVERZEICHNIS. IV
III. TABELLENVERZEICHNIS V
IV. ABKÜRZUNGSVERZEICHNIS VI
1. EINLEITUNG UND PROBLEMSTELLUNG 1
1.1 VORSTELLUNG VON ANOVA MULTIMEDIA STUDIOS GMBH UND DER WEB-ANWENDUNG
AMBIENTE 2
1.2 AMBIENTE 3
1.3 ANOVA - BILDBERECHNUNGSALGORITHMUS. 7
1.4 AUFBAU DES PROGRAMMS 9
2. GRUNDLAGEN 11
2.1 WEB-ANWENDUNG 11
2.2 JAVA 2 ENTERPRISE EDITION. 12
2.3 „MODEL-VIEW-CONTROLLER-MODELL“ 12
2.4 HTTP. 14
2.5 SERVLETS. 14
2.6 JAVASERVER PAGES 15
2.7 IMPLIZITE JSP-OBJEKTE 16
2.8 JAVABEANS 17
2.9 XML. 18
2.10 TOMCAT 19
3. ENTWICKLUNG UND KONZEPT. 20
3.1 „MODEL-VIEW-CONTROLLER“ (MV)C 20
3.2 „VIE“W 22
3.3 „CONTROLLER“ 22
3.4 „MODEL“ 23
3.5 SICHTBEREICH - WEITERGABE VON DATEN 24
3.6 KONZEPT WEB.XML. 26
3.7 KONZEPT DATENBANK. 27
3.8 BENUTZERDEFINIERTE JSP-AKTION 28
3.9 VERZEICHNISSTRUKTUR DER WEB-ANWENDUNG. 29
3.10 GEMEINSAME NUTZUNG VON SITZUNGS- UND ANWENDUNGSDATEN 31
3.11 SITZUNGS- UND MEHRFACHFENSTER. 32
3.12 MENÜSTRUKTUREN 33
4. IMPLEMENTIERUNG DER ELEMENTE DER WEB-ANWENDUNG 34
- II -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
4.1 ABLAUF DES RENDER-PROZESSES 34
4.2 „CONTROLLER“-SERVLET 36
4.3 „VIE“W-JAVASERVER PAGES. 39
4.4 JAVABEANS 48
4.5 WEB.XML 53
4.6 GEMEINSAME NUTZUNG VON DATEN ZWISCHEN SERVLETS UND JSP-SEITEN. 55
4.7 VERGLEICH JSP VS. CGI 56
5. RESULTATSERMITTLUNG UND BEWERTUNG. 58
6. QUELLEN I
6.1. LITERATUR. I
6.2. INTERNETQUELLEN. III
7. EHRENWÖRTLICHE ERKLÄRUNG V
8. ANLAGEN VI
- III -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
II. Abbildungsverzeichnis
Abbildung 1.1: Startseite ambiente
Abbildung 1.2: Raumauswahl ambiente
Abbildung 1.3: Objektauswahl ambiente
Abbildung 1.4: Teilobjektauswahl ambiente
Abbildung 1.5: Stoff- und Farbauswahl ambiente
Abbildung 1.6: Objektauswahl 2 ambiente
Abbildung 1.7: Objektauswahl 3 ambiente
Abbildung 1.8: Anfrage und Anfrageweiterleitung in dem Prototypen ambiente
Abbildung 2.1: MVC - Modell
Abbildung 3.1: MVC-Rollen in einem Servlet-JSP-Szenario
Abbildung 3.2: Die Lebensdauer von Objekten in verschiedenen Sichtbereichen
Abbildung 3.3: Verzeichnisstruktur der Web-Anwendung.
Abbildung 4.1: Reihenfolge des Render-Prozesses.
- IV -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
III. Tabellenverzeichnis
Tabelle 2.1: Implizite Objekte ...............................................................................................................16
- V -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
IV. Abkürzungsverzeichnis
- VI -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
1. Einleitung und Problemstellung
In einer Zeit in der das World Wide Web zum unabdingbaren Partner eines jeden Betriebes, einer jeden Firma und eines jeden Geschäftes unterschiedlichster Art geworden ist, erhält die Rolle der Präsentation ihrer Produkte eine immer größer werdende Bedeutung. Das Internet ist für jedermann zugänglich, die Anwendungsmöglichkeiten steigen explosionsartig an und damit auch die Darstellungs- und Werbeaussichten der einzelnen Repräsentanten, deren Web-Anwendungen immer ansprechender und leicht verständlicher werden.
Für den Nutzer ergeben sich daraus die klaren Vorteile einer guten Beratung und eines von Tageszeiten unabhängigen Service rund um die Uhr. Die Unternehmen ziehen hieraus nicht nur einen Imagegewinn, sondern sie sind auch ständig präsent, d. h. sie können 24 Stunden am Tag Kontakt zu ihren Kunden halten und verbessern ihre Chancen auf dem internationalen Markt. Dynamische Bildgenerierungen, verschiedene Menüstrukturen und freie Verfügbarkeit sind nur eine Auswahl der Möglichkeiten und Motivationsstützen, die sich die Programmierer hierbei zu Nutze machen, um eine möglichst optimale Repräsentation zu erreichen.
Die vorliegende Arbeit beschäftigt sich mit der Entwicklung einer solchen Internetanwendung und legt in den einzelnen Kapiteln die dafür nötigen Grundlagen und Schritte, bis hin zum Endergebnis einer Präsentation, ausführlich dar. Als Basis für die Ausführungen dient ein von ANOVA entwickelter Bildrechnungsalgorithmus, der nicht Bestandteil dieser Arbeit ist, sondern nur zur Visualisierung der durchgeführten Interaktionen dient. Ziel der Arbeit ist es, die Entwicklung eines Prototyps für ein Kommunikationskonzept zwischen Web-Server und Client herzustellen und dieses mittels JSP- und Servlet-Programmierung umzusetzen. Dabei müssen dynamische Menüstrukturen erzeugt und angezeigt werden, wobei die notwendigen Informationen aus den Serverdateien und einer Datenbank entnommen werden.
Dieser Datenzugriff erfolgt über JDBC:ODBC und die Entwicklung über Windows.
Als Test-Server dient Tomcat, womit auch grundlegende Kenntnisse der Serverkonfiguration Bestandteil dieser Arbeit sein werden.
Somit ergibt sich eine komplexe Web-Anwendung, dessen Aussichten die bereits erwähnten Vorteile einer kundennahen, dynamischen Präsenz im Internet erfüllen sollen.
Zudem bietet die Seite die Möglichkeiten einer Erweiterung, Ergänzung, aber auch Korrektur oder Neu-Strukturierung, die die Präsentation ständig individuell nach den jeweiligen Umständen und Anforderungen konzipieren und ausrichten kann, um so eine für das Unternehmen erfolgreiche und optimale Präsenz im World Wide Web zu erlangen.
- 1 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
1.1 Vorstellung von ANOVA Multimedia Studios GmbH und der Web-Anwendung ambiente®
Die Multimedia Studios GmbH ANOVA entwickelte vor einigen Jahren das Raumausstatterprogramm Ambiente, das neben Raum- und Objektgestaltung auch Module für die Kalkulation sowie Zuschnitte und maßstabsgerechte Darstellungen programmtechnisch umsetzen kann und somit die individuellen Vorstellungen und Bedürfnisse der Kunden erfasst und umsetzt.
Daraus ergibt sich für den Raumausstatter und Berater ein herstellerunabhängiges, komfortables und ausgereiftes Programm, das jeder Zeit als dienliches Hilfsmittel zur Verfügung steht.
Die Verkaufsunterstützung und die Effektivierung von Geschäftsprozessen sind im Bereich der Raumausstattung zwei wesentliche Aufgaben des Programms ambiente ® .
Die Software für Raumausstatter kann an die jeweiligen Bedürfnisse der Anwender angepasst werden, und es ist jeder Zeit eine Aktualisierung ohne Probleme möglich.
Es bietet eine Reihe von typischen Raumsituationen, die es ermöglichen, Wände, Decke und Fußböden individuell zu gestalten und die Fenster beliebig mit Gardinen, Dekos und Sonnenschutz zu dekorieren. Für die Fenster steht eine große Auswahl an Gardinen-, Deko-und Sonnenschutzformen sowie Zubehörteilen zur Verfügung. Diese Formen können eingefärbt oder mit Stoffmustern belegt werden. Abschließend kann die Dekoration ausgedruckt oder gespeichert sowie eine Kalkulation der Kosten für die Einrichtung erstellt werden.
Wird von der Fensterdekoration auf den Tapeten- oder Fußbodenbereich umgeschaltet, zeigt sich die Raumsituation in einem Blickwinkel, der größere Wand-, Decken- und Fußbodenflächen darstellt. Das Fenster tritt in den Hintergrund.
Das Raumausstatter-Modul dient zur Unterstützung der Kundenvorstellung und zur sachkundigen Beratung, jedoch ergeben sich erst aus den Funktionen dieses Programms die eigentlichen Realisierungseffekte. Für das programmtechnisch dekorierte Fenster kann eine Preiskalkulation durchgeführt, aber auch Stoffverbräuche und Nähzeiten berechnet sowie Bestellungen, Aufträge und Rechnungen ausgedruckt werden.
Die Aufgabe und Zielsetzung zur Erstellung eines Prototypen für eine Web-Anwendung, die speziell für das Rendern der Bilder einzelner Raumsituationen mit einer dynamischen Bildgenerierungsfunktion neuentwickelt werden soll, besteht darin, dass das in der ursprünglichen C++ Sprache verfasste Programm, in eine auf Java Technologie (und hier speziell auf JSP und Servlet) basierende Web Anwendung umgesetzt wird.
Dazu bedarf es jedoch einiger wichtiger Grundlagen, die im Folgenden erklärt werden sollen, um so die spätere Implementierung dieses Prototyps verständlicher gestalten zu können.
- 2 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Doch zunächst soll dieses Prototyp-Programm der Web-Anwendung ambiente ® vorgestellt und dessen Konzept erklärt werden. 1.2 ambiente ®
Die Startseite des vorgestellten Programms für Raumausstattung ähnelt in ihrem Aufbau den vielen anderen, global arbeitenden Web-Anwendungen. Sie beginnt mit einer programmeinstimmenden Begrüßung und wie im folgenden Bild zu sehen ist, kann der Nutzer dann zwischen Englisch und Deutsch als programmbegleitende Sprache wählen.
Abbildung 1.1: Startseite ambiente ®
Nach der Sprachauswahl erscheint eine Seite, die eine Auswahl typischer Innenansichten von Räumen zeigt, die dem Nutzer verschiedene Möglichkeiten der Fußboden-, Wand- und Fenstergestaltung bietet. Jedoch handelt es sich hierbei um eine feststehende Raumausstattung, die nicht verändert werden kann. Lediglich die Farb- und Stoffauswahl des Mobilars kann gestaltet und varriert werden. Die ausgewählten Raumdarstellungen entsprechen aber den am häufigsten im Alltag wieder auffindbaren Raumsituationen und erhöhen somit den Wiedererkennungseffekt für den einzelnen Nutzer, der sich nun nach seinen eigenen Vorstellungen und Ideen eine für ihn optimale Raumsituation auswählen kann.
- 3 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Abbildung 1.2: Raumauswahl ambiente ®
Nach der Bestimmung der gewünschten Raumsituation, erscheint eine Seite mit einer 3D-Ansicht des Raumes und eine Auswahl an Objekten, die es ermöglichen die Wände, Decken, Fußböden individuell zu gestalten und die Fenster beliebig mit Gardinen, Dekorationen und Sonnenschutz zu verschönern. Bei diesen Objekten handelt es sich zunächst um das eigentliche, noch zu bearbeitende Objekt dessen feinere Bearbeitung noch aussteht. Als Beispiel dient der im Bild erscheinende „Linke Stuhl“, der das Objekt darstellt und dessen „Rücklehne“ und „Sitzfläche“ als Teilobjekte dienen und weiter bearbeitet werden können.
Abbildung 1.3: Objektauswahl ambiente ®
- 4 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Wurde der „Linke Stuhl“ als Objekt gewählt, erscheint eine neue Seite, die eine Auswahl der sich daraus ergebenen Teilobjekte („Rücklehne“ und „Sitzfläche) bietet.
Abbildung 1.4: Teilobjektauswahl ambiente ®
Wurde ein Teilobjekt ausgewählt, erscheint die Seite mit der Auswahl der Farben und Materialien, entsprechend des gewählten Objektes. Wird der Fußboden gewählt, stehen Materialien wie Fliesen, Teppiche oder Parkett zur Auswahl, beim Fenster Stoffe und Gardinen. Innerhalb dieser Seite kann noch eine genauere Spezifizierung der Materialien erfolgen, z. B. nach Farbe, Muster und Stoffart.
- 5 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Abbildung 1.5: Stoff- und Farbauswahl ambiente ®
Im folgenden Beispiel wurde zur Veranschaulichung der Stoffauswahl die Rücklehne des linken Stuhles gewählt. Sie ist mit einem Stoff bezogen, der vom Nutzer selbst aus einer großen Auswahlpalette an möglichen Stoffen gewählt und angebracht wurde. Jetzt kann das nächste Objekt ausgesucht werden, um an ihm weitere Variationen möglicher Design- und Stoffmodulationen visuell zu veranschaulichen.
Abbildung 1.6: Objektauswahl 2 ambiente ®
- 6 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
So kann auch, wie in diesem fortgeführten Beispiel sichtbar, anhand eines neu gewählten Objektes die zunächst gewählte Variante der vorhergegangenen Darstellung erweitert, aber auch grundlegend verändert werden.
Abbildung 1.7: Objektauswahl 3 ambiente ®
Diese Schritte können solange erfolgen, bis das gewünschte Ergebnis erreicht ist, natürlich können die Stoffe und Farben jederzeit geändert werden.
Abschließend ist die Möglichkeit gegeben, das Ergebnis abzuspeichern, um eine eventuelle Vergleichsbasis zwischen den einzelnen erstellten Räumen zu sichern und um die Resultate für eine visuelle Anschauung des erwünschten Zielobjektes bzw. Zielraumes beim Raumausstatter nutzen zu können.
1.3 ANOVA - Bildberechnungsalgorithmus
Für diese Web-Anwendung zur dynamischen Bildgenerierung mit verschiedenen Menüstrukturen wurde von der Firma ANOVA ein selbst entwickelter
Bildberechnungsalgorithmus zur Verfügung gestellt. Er dient lediglich zur Visualisierung der durchgeführten Interaktionen.
Dabei handelt es sich um eine Mapping-DLL und eine Mapping-Klasse, die als Interface zwischen der Mapping-DLL und der Java-Programmierung dient. Alle Informationen zur Klasse Mapping gibt es im Anhang 1.
Eine DLL sind verknüpfte Programmteile, die für Windows-Betriebssysteme dynamisch nachladbare Bibliotheken darstellen, welche von mehreren Programmen gleichzeitig nutzbar
- 7 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
sind. Hierbei werden Zugriffskonflikte durch separate Umgebungen für die einzelnen 32-Bit DLLs, die durch die Programme laufen, verhindert.
Die DLL enthält einen ausführbaren Code und Daten, die nicht während der Herstellung der Verbindung, sondern erst beim Laden oder während der Ausführung an ein Programm gebunden werden. Der Code und die Daten in einer Bibliothek können von verschiedenen Anwendungen gleichzeitig verwendet werden, dadurch kann Speicherkapazität eingespart werden, da der Code und die Daten nicht in jedem einzelnen Programm enthalten sein müssen.
Die Mapping-DLL stellt verschiedene Funktionen zur Verfügung, welche speziell von JAVA aus zugreifbar sind. Diese Funktionen besitzen eine spezielle Syntax, damit die JAVA-Parameter korrekt ausgewertet werden können. Genaueres findet man im JNI (Java Native Interface) [25]. Die einzelnen Funktionen sind die in der JAVA-Klasse 'Mapping' definierten (siehe Anhang 31). Diese Funktionsaufrufe werden praktisch nur in die DLL weitergeleitet (zuzüglich Parameterkonvertierung).
In der folgenden Abbildung sind alle Anfragen der JSP-Seiten, des „Controllers“ und der Beans sowie deren Weiterleitung abgebildet. Bei dem Programmstück in den JSP-Seiten forward() der Klasse RequestDispatcher und perform() der jeweiligen Beans aufgerufen, die Erläuterung dieser Methoden erfogt in den Kapiteln 4.2 „Controller“-Servlet und 4.4 JavaBeans.
- 8 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
form action "controller"
index.jsp
Controller
peform
VectorInit
forward
forward
index3.jsp
form action "controller"
forward
Controller Controller
index4.jsp
forward
index4 2.jsp
logo.jsp
a href "controller"
starttag.jsp
a href "controller"
index4 1.jsp
Controller
forward
index4a.jsp
index4 2.jsp
a href "controller" logo.jsp
back.jsp
a href "controller"
starttag.jsp
a href "controller"
index4 1a.jsp
Controller
index5.jsp
forward
index4 3.jsp
index4 3eng.jsp
a href "controller" logo.jsp
back.jsp
a href "controller"
starttag.jsp
form action "controller"
index4 4.jsp
Controller
peform
ImageCut
forward
Abbildung 1.8: Anfrage und Anfrageweiterleitung in dem Prototypen ambiente
1.4 Aufbau des Programms
Die Web-Anwendung ist nach dem Prinzip des Entwurfmodells „Model-View-Controller-
Modell “ entwickelt. Das Ziel dieses Modells ist die Trennung der Komponenten in drei klar
abgegrenzte Einheiten. Das sind das „Model“, die „View“ und der „Controller“ Das „Model“
entspricht der Geschäftslogik und den Daten, die „View“ der Präsentationslogik und der
„Controller“ der Anfrageverarbeitung. (Siehe 2.3 „Model-View-Controller-Modell“) Die
- 9 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
„View“ wird mittels JavaServer Pages, der „Controller“ durch ein Servlet und das „Model“ mittels Java implementiert.
Dazu bedarf es jedoch einiger wichtiger Grundlagen, die im Folgenden erklärt werden sollen, um so eine Basis für die später erforderliche Implementierung dieses Prototyps verständlicher gestalten zu können.
- 10 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Grundlagen 2.
2.1 Web-Anwendung
Das Internet hat einen starken Wandel hinter sich. Die Zeiten der statischen Webseiten (eine bestimmte Anzahl von Seiten mit einer festgelegten Struktur, die sich nicht verändert) sind vorbei, Seiten mit dynamischen Inhalten gewinnen immer mehr an Bedeutung. Kaum ein Unternehmen kann es sich leisten, nicht im Internet präsent zu sein. Es ist das Mittel zu schnellerer Kommunikation, Information und Reaktion zwischen dem Unternehmen und ihren Partnern. Partner wären z. B. Kunden, Lieferanten oder auch Zweigstellen der Unternehmen im In- und Ausland.
Für diese Zwecke benötigt solch ein Unternehmen Web-Anwendungen, mit denen innerhalb kürzester Zeit auf Veränderungen reagiert werden kann. Sehr bekannte Web-Anwendungen sind solche Verkaufspunkte wie Online-Auktionen, virtuelle Buchläden und komplette Internetversandhäuser, z. B.: www.amazon.com oder www.ebay.de . [1]
Bei Web-Anwendungen handelt es sich vereinfacht gesprochen um ein Anwendungsprogramm, das auf einem Server läuft. Mittels eines Clients kann der Nutzer auf dieses Programm zugreifen. Ein Server (Bediener), der sowohl den dienstanbietenden Computer darstellt als auch das hierfür benötigte Programm, bietet Clients (Kunden) seine Dienste an. Als Client wiederum wird sowohl der Computer, von dem der Dienst genutzt wird, als auch das dafür benötigte Programm bezeichnet. Der weitverbreiteste Client ist der Webbrowser auf einem PC oder einer Workstation. Beispiele für solche Webbrowser sind der Internet Explorer, Netscape oder Opera. Des Weiteren sind eine große Anzahl von Clients in der Entwicklung, wie die für PDAs oder Mobiltelefone. PDA steht für "Personal Digital Assistent" und bezeichnet kleine mobile Computer im Taschenformat, die fast alles bieten, was man von einem „normaler“ Personalcomputer kennt. (Vgl. Bergsten, 2001, SEITE 284)
Das Ziel solcher Webanwendung ist es, alle benötigten Informationen und Dienste bereitzustellen, unabhängig davon, welches Gerät verwendet wird. Dem Client-Programm sollte es ermöglicht werden, mit verschiedenen Server-Anwendungen zusammenzuarbeiten und umgekehrt muss auch die Anwendung mit den Clients arbeiten können. Wichtige Kriterien an eine Webanwendung aus Anwendersicht sind einfache und stabile Nutzung, höhere Produktivität, bessere Interaktivität und kurze Reaktionszeiten. Aus Sicht der Entwickler sind es die Wiederverwendbarkeit, die Wartbarkeit und die Erweiterbarkeit. [2]
- 11 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
2.2 Java 2 Enterprise Edition
Java 2 Enterprise Edition (J2EE) ist eine auf dem Java Development Kit und der Java 2 Edition basierende Plattform, die funktional auf die Entwicklung, Bereitstellung und das Management von verteilten Applikationen in mehrstufigen, hierarchisch organisierten Server-Umgebungen (Multi-Tier-Architektur) ausgerichtet ist. Das J2EE-Programmiermodell erleichtert durch seine Plattformunabhängigkeit und API-Definition die Entwicklung, Verwaltung und Bereitstellung komplexer Unternehmenslösungen.
Es bietet der Java Servlet API und der JavaServer Pages Technologie volle Unterstützung für die Applikationsserver-Entwicklung im Einsatz unternehmensweiter, serverbasierter Anwendungen. [3]
Die Client-/Server-Architekturen sind in mehrere Softwareschichten aufgeteilt. Die Third-Tier-Architektur speziell ist in drei Schichten zu unterscheiden: der First-, Middle- und Third-Tier-Schicht.
Die First-Tier-Schicht ist die Präsentationsschicht, auf der sich das Benutzerinterface befindet. Die Clients übernehmen bei diesen Clientrechnern nur die Ausgabe und einen kleinen Teil der Verarbeitung. Das Benutzerinterface ist der Teil einer Web-Anwendung, den der Benutzer sieht und mit dem er arbeitet. Das Benutzerinterface ist nicht nur ein visuelles Display, sondern die Summe aller Kommunikationen zwischen Nutzer und Web-Anwendung. Es präsentiert die Informationen dem Nutzer und akzeptiert Informationen (z. B. Formulareingaben) vom Nutzer.
Die Middle-Tier-Schicht ist die Applikationsschicht, die für die Anwendungsverarbeitung, für Verwaltungs- und Kontrollaufgaben, das Sicherheits- und Transaktionsmanagement und die Verbindung zu den Datenbanken, Webservern usw. verantwortlich ist. Hier werden die JavaServer Pages und die Java Servlets ausgeführt, die die Geschäftslogik verarbeiten. Die Third-Schicht ist die Persistenzschicht, die oftmals als Backendserver identifizierbar ist und auf dem die persistenten Daten liegen, die hauptsächlich in Datenbanken gehalten werden und auf die die JavaServer Pages und Java Servlets zurückgreifen können. [4]
2.3 „Model-View-Controller-Modell“
Das „Model-View-Controller-Modell“ ist ein Entwurfsmodell sowohl für einfache als auch für komplexe Anwendungen. Das Ziel dieses Modells ist die Trennung in drei klar abgegrenzte Einheiten. Das sind das „Model“, die „View“ und der „Controller“. Das „Model“ entspricht der Geschäftslogik und der Daten, die „View“ der Präsentationslogik und der „Controller“ der Anfrageverarbeitung. Dies führt zu einem flexiblen Design. Das bedeutet, dass Anwendungsdaten und Geschäftslogik, die Präsentation der Daten und die Interaktion
- 12 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
mit den Daten in verschiedene Schichten aufgeteilt werden. Daraus resultiert, dass die Darstellung der benötigten Daten modifiziert werden kann, denn die verschieden Clients benötigen eine unterschiedliche Darstellung der Daten, z. B. benötigen Browser HTML-Dateien und Handys WLM-Dateien, aber die Geschäftslogik, die dahinter steckt, ist die Gleiche. Des Weiteren können Änderungen an den Geschäftsregeln oder an der physischen Datenrepräsentation vorgenommen werden, ohne dass das Layout der Darstellung verändert wird. [5]
Abbildung 2.1: MVC - Modell [13]
In der Abbildung 2.1 ist der Verlauf von der Anfrage (get/post) des Clients bis zur Antwort des Servers in einem „Model-View-Controller-Modell“ zusehen. Die Anfrage vom Client wird vom Webserver an den Servlet-Container weitergereicht (kleinerer, oberer Kreis). Ein Servlet-Container verwaltet alle Servlets. Dieser ist in dem Webserver eingebettet. Der Container leitet dann die Anfragen an das Servlet weiter. Das Controller-Servlet, welches innerhalb des Servlet-Containers läuft, nimmt die Anfrage an und leitet sie entweder direkt an eine JSP-Seite oder übergibt die Anfrage zur Weiterverarbeitung an das „Model“, diese Weiterverarbeitung erfolgt dann in den Java-Klassen (siehe 2.8 JavaBeans), welche die Geschäftslogik enthalten (großer „Model“ Kreis). Diese Java-Klassen leiten die Daten und Informationen, die z B. aus einer Datenbank gelesen wurden, an die JSP-Seite weiter (kleinerer „View“ Kreis), wo dann die Antwort (HTML-Code) für den Client dynamisch aufgebaut und an ihn zurück gesendet wird.
- 13 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
2.4 HTTP
Wie schon erwähnt, müssen die Client-Anwendungen mit den Web-Anwendungen kommunizieren können und umgekehrt auch die Web-Anwendungen mit den Client-Anwendungen. Um diese Anforderungen zu realisieren, läuft diese Client- Server-Verbindung über das HTTP. Das HTTP definiert ein Kommunikationsmodell, welches die Grundlage für den Entwurf einer Web-Anwendung bildet. (Vgl. Bergsten, 2001, SEITE 13) HTTP ist ein zustandsfreies Protokoll. Dies bedeutet, dass weder der Server noch der Client Informationen über den anderen speichern können. Bei einer HTTP-Transaktion stellt der Client eine Anfrage (request) an den Server, dieser antwortet (response) und schließt die Verbindung. Die Kommunikation erfolgt über den Austausch von HTTP-Nachrichten, diese bestehen im Wesentlichen aus zwei Teilen: aus dem Header und den Daten. Der Header enthält die Steuerinformationen, wie z. B. die verwendeten Methoden (get- oder post-Methode) und die gewünschten URLs (Uniform Resource Locator). Bei den Daten handelt es sich meistens um HTML-Dokumente oder Formulardaten, die der Client an den Server, oder umgekehrt, sendet. [6]
2.5 Servlets
Servlets sind Java-Programme, die dem Webserver eine neue Funktionalität hinzufügen. Sie werden nicht wie Applets im Web-Browser, sondern innerhalb des Webservers ausgeführt; in dem so genannten Servlet-Container. Der Servlet-Container wird benötigt, um Servlets innerhalb eines Webservers auszuführen. Er ist in dem Webserver integriert. Der Client sendet eine Anfrage an den Webserver, diese Anfrage wird von dem Servlet-Container bearbeitet und an das entsprechende Servlet weitergereicht. Ein Servlet muss immer bestimmte Methoden implementieren, diese Methoden sind doGet(), doPost(), init() und destroy(). Über diese Methoden erfolgt dann die Kommunikation von dem Servlet-Container zum Servlet. Wird eine Anfrage an ein Servlet gesendet, ruft der Servlet-Container die entsprechende Methode des Servlets auf und diese generiert dann die Antwort. Diese Antwort kann als HTML-Text dynamisch erzeugt und dann als HTML-Seite an den Browser zurückgeschickt werden.
Alle Servlets müssen von der Klasse HttpServlet abgeleitet werden. Die Methoden zur Kommunikation sind doGet (Get Requests), doPost (Post Requests), doPut (Put Requests), doDelete (Delete Requests) und service (universell). Die einzelnen Methoden müssen zwei Objekte als Parameter mit übergeben. Zunächst das HttpServeletRequest Objekt, es enthält Informationen über Cookies (siehe 3.10 Gemeinsame Nutzung von Sitzungs- und Anwendungsdaten) und andere wichtige Daten, die an die Anwendung übergeben werden sollten. Desweiteren das HttpServletResponse Objekt, es enthält Methoden und Daten, um eine Anfrage zu beantworten.
- 14 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
Es gibt zwei Möglichkeiten ein Servlet zu laden, die automatische Ladung des Servlet, wenn der Server gestartet wird oder wenn der Client das erste Mal eine Anfrage an das Servlet stellt. Zusätzlich zur Java-Servlet-API können Servlets Java-Klassenpakete verwenden, die zur API hinzugefügt werden.
Mehr zum Thema Java Servlets ist unter [15] auffindbar.
2.6 JavaServer Pages
"JavaServer Pages sind eine Möglichkeit, Serverseitig dynamische Webseiten analog der Methoden CGI und Servlets zu generieren. Die Besonderheit der JavaServer Pages liegt in der Trennung des Oberflächendesigns der zu erzeugenden HTML-Seite und des programmiertechnischen Aufwandes". (Brantner, 2001, SEITE 10) JavaServer Pages sind eine Technologie zur Entwicklung von Webseiten mit dynamischen Inhalten. Sie stellen keine grundlegend neue Technologie dar, sondern sind auf der von Java Servlet aufgebaut. Vor der Verwendung der JavaServer Pages erfolgt durch den JSP-Container eine Umwandlung dieser Pages in ein Servlet und wird ab dann nur noch als ein solches verwendet. Der Servlet-Container nimmt eine HTTP-Anfrage an und ermittelt anhand eines URL-Mapping, dass es sich um eine JavaServer Page handelt. Ein JSP-Container wird aufgerufen und fragt in der Verwaltung nach, ob vielleicht schon eine kompilierte aktuelle JSP für die Anfrage vorliegt. Falls nicht, lädt der Container aus dem Dateisystem die entsprechende Seite und erzeugt daraus ein Servlet (mittels Java-Sourcecode). Anschließend übersetzt er diesen Servlet-Source und lädt die resultierende Klasse mit einem Class Loader. Der Class Loader lädt Dateien entweder vom externen Medium wie Festplatte oder Netzwerk und überträgt die Java-Binär-Dateien zum Interpreter.
HTML-Seiten haben nur statischen, stets gleich bleibenden Inhalt. Aber JSP-Seiten können ihren Inhalt dynamisch verändern, in Abhängigkeit von bestimmten Faktoren, wie z. B. je nach Identität des Benutzers, der verwendeten Browser, Informationen, Aktionen oder Entscheidung des Benutzers. JavaServer Pages enthalten standardisierte Elemente einer Auszeichnungssprache, z. B. HTML-Tags, und die JSP-Elemente für den dynamischen Inhalt. Diese Elemente können für die verschiedensten Funktionen genutzt werden, wie zur Darstellung von Informationen aus einer Datenbank oder zur Registrierung der Nutzerdaten. Bei dem Aufruf der JSP-Seite, führt der Server die JSP-Elemente aus, mischt das Ergebnis mit den statischen Teilen der Seite und sendet die dynamisch zusammengesetzte Seite an den Browser zurück. (Vgl. Bergsten, 2001, SEITE 3)
- 15 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
2.7 Implizite JSP-Objekte
Der JSP-Container stellt eine Anzahl von Objekten bereit. Diese Objekte sind Instanzen der Klassen der JSP-API. Über die Skriptelemente (siehe 4.3 „View“-JavaServer Pages) kann auf diese Objekte zugegriffen werden. Die Objekte sind Folgende:
Tabelle 2.1: Implizite Objekte (Bergsten, 2001, SEITE 90)
Hier sollen nun die wichtigsten Objekte erklärt werden. request
Dieses Objekt ist eine Instanz der Klasse HttpServletRequest und stellt Methoden zur Verfügung, die alle zur momentanen Anfrage gehörenden Informationen abfragen können. Die Informationen können Anfrageparameter, Attribute oder Cookies sein. response
Dieses Objekt ist eine Instanz der Klasse HttpServletResponse, ihre Methoden repräsentieren die aktuelle Antwortmeldung und die, die mit der Sitzungsverfolgung agieren. session
Dieses Objekt hat Zugriff auf alle Sitzungsinformationen des Clients, die der Web-Server verwaltet. Es ist eine Instanz der Klasse HttpSession.
- 16 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
application
Das Objekt ist eine Instanz der Klasse ServletContext und es hält Referenzen auf andere Objekte, auf die alle Benutzer zugreifen können. Eine wichtige Methode ist log(), mit ihr können Meldungen in die Protokolldatei servlet.log hinein geschrieben werden. (Vgl. Bergsten, 2001, SEITE 90)
Weitere Informationen zu JSP finden sich unter der URL: [16].
2.8 JavaBeans
Ein weiterer wichtiger Bestandteil einer J2EE-orientierten Web-Anwendung sind die JavaBeans. Dabei handelt es sich um eigenständige, wieder verwendbare Softwarekomponenten zum Aufbau von Applets und Applikationen. Mit den JavaBeans steht den Entwicklern eine plattformübergreifende Komponentenarchitektur zur Verfügung. (Krüger, 2000, Seite 41/50)
„Ein Java-Bean ist eine wiederverwendbare Softwarekomponente, die in einer Entwicklungsumgebung visuell bearbeitet werden kann.“ (JavaBeansTM API Specification, SUN Microsystems)
Bei den JavaBeans handelt es sich um spezielle Java-Klassen, mit nur einem Konstruktor ohne Argumente. Zusätzlich sollten sie die Schnittstelle java.io.Serializable implementieren, weil Servlet-Container persistente Sitzungen unterstützen. Das bedeutet, dass der Container alle Sitzungsdaten speichert, wenn der Servlet-Kontext heruntergefahren wird. Startet man den Kontext erneut, kann wieder auf alle Sitzungsdaten zugegriffen werden. Auf die Attribute der JavaBeans wird über Getter- und Setter- Methoden zugegriffen. Diese werden als Zugriffsmethoden bezeichnet. Die JavaBeans müssen den Namenskonventionen entsprechen, d. h. die Namen der Methoden werden aus get- bzw. set- und dem Namen der Eigenschaft gebildet. Das erste Zeichen nach „get“ bzw. „set“ muss als Großbuchstabe geschrieben werden, das folgende Beispiel soll dies noch einmal verdeutlichen.
name getName() , setName(String name)
Beispiel 2.1: Namensgebung Getter- und Setter-Methode
Die normale Getter-Methode hat keine Argumente und liefert einen Wert mit dem Datentyp der Eigenschaft zurück und die Setter-Methoden sind vom Typ void mit einem Argument vom Typ der Eigenschaft ausgestattet. Für Getter- und Setter-Methoden folgt nun ein Beispiel.
import java.util.*; import java.io.*;
public class ReadVector implements Serializable { private Vector vector;
- 17 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
public Vector getVector(){ return vector; }
public void setVector(Vector vector){ this.vector=vector; } }
Beispiel 2.2: JavaBean
Die lesbaren Eigenschaften werden über die Getter-Methoden und die schreibbaren Eigenschaften über Setter-Methoden dargestellt. Es können noch zusätzlich Methoden deklariert werden, z.B.: Methoden zum Lesen, die auch auf Instanzvariablen oder andere Werte zugreifen, bzw. Berechnungen durchführen. Bei booleschen Eigenschaften kann natürlich auch das allgemeine Muster verwendet werden, empfohlen wird hier aber ein Wort bestehend aus „is“ in Kombination mit dem Namen der Eigenschaft, daraus entsteht dann eine Frage: isOpen()
Bei den JavaBeans werden zwei Arten unterschieden; die ValueBeans und die Utility-Beans. In dieser Web-Anwendung werden nur ValueBeans implementiert, warum und wie folgt in den weiteren Ausführungen (siehe 3.4 „Model“). (Vgl. Bergsten, 2001, SEITE 322) Wer sich für weitere Informationen über JavaBeans interessiert, dem können die Seiten [17] oder [18] empfohlen werden.
2.9 XML
Die Syntax von Extensible Markup Language (XML) ähnelt der von HTML, ist aber eingeschränkter. Sie wurde als erweiterbare und standardisierte Variante von HTML entwickelt. Heute spielt XML eine wichtige Rolle im Datenaustausch, der Trennung von Inhalten und der Darstellung der Informationen sowie im plattformübergreifenden Austausch von Nachrichten. XML ist eine Methode für die Beschreibung von Informationen, die ein Computer und die meisten Menschen verstehen können. Dabei handelt es sich um eine Ansammlung von Syntaxregeln zur Darstellung strukturierter Daten mit Hilfe von Auszeichnungselementen. Die XML-Elemente können vom Programmierer selbst definiert werden, aber sie sind nicht direkt darstellbar. Eine typische XML-Anwendung hat drei Dateien: die XML-Datei mit den Daten, die DTD- oder Schema-Datei, die die Datenstruktur beschreibt, und eine Cascading Style Sheets oder Extensible Stylesheet Language-Datei, die die Präsentation der Daten beschreibt. (Vgl. Bergsten, 2001, SEITE 261) XML wird für die Deklaration der web.xml benötigt, wie noch im Weiteren beschrieben wird (siehe 3.6 Konzept Web.xml). Für weiterführende Informationen zu XML und deren Darstellung können die Seiten [19] und [20] empfohlen werden.
- 18 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
2.10 Tomcat
„Tomcat ist die Referenzimplementierung für JavaServer Pages und Java Sevlets durch Sun Microsystems. Der Code wurde dann der Apache Organisation übergeben, welche nun die Weiterentwicklung von Tomcat sowie die Arbeit an der Integration in Apache übernommen haben.“ [9]
Tomcat wird als Stand-alone-Server für http-Requests verwendet und stellt die Laufumgebung für Java Servlets dar. Bei einem Stand-alone-Server läuft ständig ein eigener Prozess, und ist bei sehr stark frequentierten Servern geeignet. Im Folgenden einige wichtige Dinge, die bei der Installation von Tomcat auf Windows 98 zu beachten sind. Ausführliche Informationen stehen im doc-Verzeichnis von Tomcat.
Voraussetzung ist, dass das Java Software Development Kit installiert ist, es ist unter [21] zu finden.
Die aktuellste Version von Tomcat findet man unter [22].
Nach dem Download wird das Paket in das Verzeichnis c:\tomcat\ entpackt. Dann sind folgende Umgebungsvariablen zu setzen: JAVA_HOME, PATH und TOMCAT_HOME und der Rechner ist neu zu starten.
Um den Server zu starten, muss die startup.bat in dem Verzeichnis c:\tomcat\bin ausgeführt werden und zum Schließen die shutdown.bat im gleichen Verzeichnis. Nach dem ersten Starten wird automatisch eine Verzeichnisstruktur generiert. Dies sind die Verzeichnisse: bin, es enthält die Skripte zum Starten und Schließen von Tomcat, das conf-Verzeichnis für alle Konfigurationsdateien, das doc-Verzeichnis beinhaltet die Dokumentation, das lib- Verzeichnisfür die Bibliotheken, das src-Verzeichnis enthält Quellprogramme zu allen spezifizierten Servlet- und JSP-Klassen und Interfaces. Und in das webapps- Verzeichnis kommen die Web-Anwendungen, die mit Tomcat betrieben werden sollen. Um zu testen, ob der Server richtig läuft, kann im Browser einfach die Seite http://localhost:8080/ aufgerufen werden und es muss dann die „default Tomcat home page“ erscheinen.(Vgl. Bergsten, 2001, Seite 47), [10], [11], [9]
- 19 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
3. Entwicklung und Konzept
Nachdem die benötigten Grundlagen im Voraus dargestellt wurden, folgt nun die Entwicklung und das Konzept der Bestandteile dieser Web-Anwendung. Zuerst sollen die wesentlichen Anforderungen und Ideen für dieses Konzept aufgezeigt werden, um dann auf weitere Punkte eingehen zu können, die eine Verfeinerung dieser Entwicklung ermöglichen. Im Anschluss werden die Probleme, die die Untersuchung lösen soll, näher beleuchtet und die daraus resultierenden Entscheidungen aufgezeigt und erklärt werden. Das Ziel dieser Arbeit ist die Entwicklung einer Internetanwendung für eine dynamische Bildgenerierung mit verschiedenen Menüstrukturen. Als Grundlage dient ein von ANOVA entwickelter Bildberechnungsalgorithmus. Er dient nur zur Visualisierung der durchgeführten Interaktionen.
Die Web-Anwendung soll serverseitig arbeiten, und jedem Anwender soll die Möglichkeit eines webbasierten Zugriffs über jeden beliebigen Web-Browser gegeben werden. Für diese Web-Anwendung sollen Standardkomponenten genutzt werden, um eine
Plattformunabhängigkeit zu gewährleisten. Um dies zu erreichen, kommt die Java-Technologie zum Einsatz, vor allem Servlet und JavaServer Pages zur dynamischen Erzeugung von Webseiten. Die notwendigen Informationen werden aus Serverdateien und einer Datenbank entnommen.
Der Datenbankzugriff erfolgt über JDBC:ODBC und es wird eine Access-Datenbank zum Einsatz kommen.
3.1 „Model-View-Controller“ (MVC)
Für das Konzept dieser Web- Anwendung kommt das „Model-View-Controller-Modell“ zum Einsatz, dabei handelt es sich um ein Entwurfsmodell, welches sowohl für einfache als auch für komplexe Anwendungen geeignet ist. Die Idee dieses Entwurfsmodells ist die Trennung der Anwendungsdaten und der Geschäftslogik sowie die Präsentation der Daten und der Interaktion mit den Daten in jeweils eigenständigen Teilen. (siehe 2.3 „Model-View-Controller-Modell“).
Diese eigenständigen Teile sind das „Model“, die „View“ und der „Controller“. Das „Model“ wird durch JavaBaens dargestellt, die „View“ durch JavaServer Pages und der „Controller“ durch ein Servlet. Durch diese Aufteilung der Anwendungslogik wird eine hohe Flexibilität erreicht, weil die Änderung eines Bereiches keine Auswirkung auf die anderen Teile hat. Des Weiteren wird dadurch die Übersicht, Wartbarkeit und die Wiederverwendbarkeit der Anwendung verbessert, und die Programmierer können sich auf ihre Fachgebiete, wie z. B.
- 20 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
die Entwicklung der Businesslogik, und der Designer auf das Gebiet der Darstellung konzentrieren.
Die Funktionsweise des MVC- Modells kann so beschrieben werden: Ein Client (Browser) stellt eine Anfrage an die Anwendung, diese wird vom Webserver an den Servlet-Container weitergereicht, in dem das Controller-Servlet läuft. Der „Controller“ nimmt die Anfrage an und leitet sie weiter, entweder direkt an eine JSP-Seite („View“) oder zur Weiterverarbeitung an die JavaBeans („Model“). Die JSP-Seite stellt die Antwort (HTML-Code) entweder gleich im Browser dar oder das JavaBean schickt nach der Verarbeitung der Anfrage die Antwort an eine JSP-Seite. (Vgl. Bergsten, 2001, SEITE 45 / Turau, 2002, SEITE 15)
Abbildung 3.1: MVC-Rollen in einem Servlet-JSP-Szenario (vgl. Bergsten, 2001, SEITE 289)
In der Abbildung 3.1 sind die MVC-Rollen in einem Servlet-JSP-Szenario zu sehen. Alle Anfragen werden an das Servlet gesandt, welches als „Controller“ dient. Der „Controller“ erhält durch Anfrageparameter oder durch einen Teil des URL-Pfades Informationen, wie die Anfrage weiter zu leiten ist, ob entweder gleich an die „View“ oder zur Weiterverarbeitung an das „Model“.
Die JavaBeans repräsentieren das „Model“, dieses ordnet die Verarbeitung dem passenden JavaBean zu, welche dann die angeforderte Aktion ausführen. Die Ergebnisse der JavaBeans
- 21 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
werden zur Darstellung an die JSP-Seiten der „View“ geleitet, die für die Darstellung der Daten und Informationen jener verantwortlich sind oder es erfolgt eine Weiterleitung der Resultate an den „Controller“, der sie an die „View“ schickt oder noch mal zur Weiterverarbeitung an das „Model“ zurücksendet. 3.2 „View“
Wie schon erwähnt, ist die „View“ für die Darstellung der Informationen und die Entgegennahme von Benutzeranweisungen verantwortlich. Diese Daten werden in dem „Model“, den JavaBeans, gehalten und können von der „View“ und vom „Controller“ aus abgerufen werden. Die „View“ wird durch JavaServer Pages realisiert. Die JavaServer Pages-Technologie besitzt die Möglichkeit die vorhandenen Ressourcen zu verwenden. Die JavaServer Pages sind in der Lage auf die kompletten Java-APIs zuzugreifen. So können sie beliebige Java-Klassen einbinden und instanziieren. Das bedeutet, dass man in den JSP-Seiten Methoden anderer Java-Klassen aufrufen und die Ergebnisse direkt in dieser Seite darstellen kann.
Ein weiterer entscheidender Vorteil besteht darin, dass eine JSP-Seite nicht nur für eine Client-Anfrage im Speicher bleibt, sondern für viele Anfragen zur Verfügung steht, denn es wird jedes Mal in einem neuen eigenen Thread (Nebenläufigkeit) ausgeführt, das bringt einen deutlichen Performancevorteil z. B. gegenüber einem CGI-Skript, das immer einen neuen Prozess startet. In die JSP- Seiten sollte nicht mehr Programm- und Ablauflogik als unbedingt nötig integriert werden, dafür ist das „Model“ verantwortlich. Dies ermöglicht mehrere unterschiedliche Darstellungen der Informationen, zum Beispiel für Web-Browser oder Handys, es muss nur die „View“ geändert werden, die Businesslogik bleibt bestehen. [12]
3.3 „Controller“
Der „Controller“ ist die Anlaufstelle der Web-Anwendung, über ihn laufen alle Anfragen. Er ist das Bindeglied zwischen „View“ und „Model“, also zuständig für die Kontrolle des Programmablaufs und steuert die Aktualisierung zwischen „Model“ und „View“ und umgekehrt. Für den „Controller“ kommt ein Servlet zum Einsatz. Erhält der „Controller“ eine Anfrage eines Clients, entscheidet er, ob die Anfrage gleich an eine JSP-Seite zur Darstellung geschickt oder zur Verarbeitung an das „Model“ (JavaBeans) weitergeleitet wird. Das Verhalten des „Controllers“ wird durch eine XML-Datei (siehe3.6 Konzept Web.xml) konfiguriert. In dieser Datei stehen die Informationen, die der „Controller“ benötigt, um zu entscheiden, an welche JSP-Seite oder an welches JavaBean die Anfrage weitergeleitet werden soll. In dem „Controller“ darf sich keine Präsentations- oder Businesslogik befinden. (Vgl. Bergsten, 2001, SEITE 45 / Turau u. a., 2001, SEITE 151 )[12] [13]
- 22 -
Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets
3.4 „Model“
Das „Model“ repräsentiert die Businesslogik der Anwendung und verwaltet die dazu erforderlichen persistenten Geschäftsdaten, dies wird durch JavaBeans oder normale Java-Klassen realisiert. Das „Model“ kann unabhängig von der „View“ entworfen und getestet werden und es kann relativ problemlos mit unterschiedliche „Views“ verbunden werden. Ein Beispiel ist die Verarbeitung der Daten aus einer Datenbank. Gerade an die JavaBeans wird die Anforderung der Wiederverwendbarkeit gestellt. [12]
In dieser Anwendung kommen zwei Arten von JavaBeans zum Einsatz, das „Value-Bean“ und „Utility-Bean“. Ein Value-Bean kapselt alle Informationen und das Utility-Bean führt Aktionen aus. Value-Bean
Value-Beans speichern Daten aus der Datenbank, Benutzereingaben oder Daten aus der Weiterverarbeitung. Entsprechend des ausgewählten Sichtbereiches (siehe 3.5 Sichtbereich Weitergabe von Daten) kann von verschiedenen Orten aus auf die Daten zugegriffen werden, was sich zeitsparend auf die Datenlesung auswirkt, da sie einfach von den Beans direkt abgefragt werden können. Das Beispiel 3.1 zeigt ein einfaches Value-Bean mit einer Getter-Methode und einer Setter-Methode. In einem Value-Bean können beliebig viele dieser Methoden implementiert werden, aber aus Übersichtlichkeitsgründen sollten nur Methoden zu maximal einer Problemstellung in ein Value-Bean zusammengefasst werden.
public class Lieferant{ private String lieferant; public String getLieferant(){ return lieferant; }
public void setLieferant(String lieferant){ this.lieferant = lieferant; } }
Beispiel 3.1: Value-Bean (Vgl. Bergsten, 2001, SEITE 322) Utility-Beans
Die Utility-Beans führen Aktionen aus, wie z. B. Datenlesung und Datenablegung in den Value-Beans. (Vgl. Bergsten, 2001, SEITE 328)
- 23 -
Arbeit zitieren:
Arne Vogt, 2002, Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Möglichkeiten zur Umsetzung von Multi-Tier-Internetapplikationen am Be...
Informatik - Wirtschaftsinformatik
Studienarbeit, 34 Seiten
Outsourcing und Betriebsübergang
Jura - Zivilrecht / Handelsrecht, Gesellschaftsrecht, Kartellrecht, Wirtschaftsrecht
Ausarbeitung, 43 Seiten
Skalierbarkeit von Routingprotokollen in mobilen Ad-Hoc-Netzen
Informatik - Internet, neue Technologien
Bachelorarbeit, 48 Seiten
Organisationsformen für das Outsourcing betrieblicher EDV-Bereiche - e...
Seminararbeit, 40 Seiten
Digital Divide - Die Frage nach der Wissenskluft im digitalen Zeitalte...
Soziologie - Medien, Kunst, Musik
Hausarbeit, 21 Seiten
IP-basierter Transport von Daten aus Sensornetzwerken
Informatik - Angewandte Informatik
Studienarbeit, 35 Seiten
Informatik - Internet, neue Technologien
Hausarbeit (Hauptseminar), 25 Seiten
Der weltweite Erfolg des Apple i-Pods
Anhand welcher Unternehmensstr...
BWL - Marketing, Unternehmenskommunikation, CRM, Marktforschung
Seminararbeit, 15 Seiten
Arne Vogt hat den Text Entwicklung einer Web-Anwendung auf Basis von JavaServer Pages und Servlets veröffentlicht
Arne Vogt hat einen neuen Text hochgeladen
Core Servlets and JavaServer Pages: Volume I: Core Technologies
Volume 1: Core Technologies
Larry Brown, Marty Hall
Servlets und JavaServer Pages. Das Übungsbuch - Band III
Über 100 Aufgaben mit vollstän...
Elisabeth Jung
Servlets and JavaServer Pages(tm): The J2ee(tm) Technology Web Tier
Jayson Falkner, Kevin W. Jones
0 Kommentare