Projekt - Phase 1: ''Online Shop''


Aufgabenstellung:

Im Rahmen des Projekts soll ein Online Shop mittels Servlets realisiert werden. In der ersten Phase des Projekts soll eine Web-Applikation realisiert werden, um über einen Browser den Artikelbestand des Online Shops verwalten zu können (Erfassen, Anzeigen, Ändern und Löschen von Artikeln). Alle erfassten Artikeldaten müssen auf dem Web-Server persistent in einem File (anstatt in einer Datenbank) gespeichert werden. 

Die Web-Applikation  zur Artikelverwaltung muss zumindest folgende Klassen umfassen:
 
1. Klasse Artikel
Für jeden Artikel muss zumindest eine eindeutige Identifikation (ID), die Bezeichnung, der Preis, die Lagermenge, sowie eine URL, um Detaildaten anzuzeigen, erfasst werden. Dazu soll eine Klasse Artikel mit entsprechenden privaten Instanzvariablen und öffentlichen Zugriffsmethoden verwendet werden.

2. Klasse ArtikelVerwaltung

Diese Klasse soll die interne Verwaltung von Artikel-Objekten realisieren. Zur internen Speicherung von Artikel-Objekten soll ein private Instanzvariable der Klasse java.util.HashMap verwendet werden. Die Klasse ArtikelVerwaltung soll Methoden zum Erfassen, zum Ändern und zum Löschen eines Artikels enthalten. Weiters soll es eine Methode, die alle erfassten Artikel zurückliefert, und eine Methode, die einen bestimmten Artikel zurückliefert, geben.
 
Anmerkung: 
Von der Klasse ArtikelVerwaltung soll genau eine Instanz erzeugt werden und über den Servletkontext allen Servlets zur Verfügung gestellt werden. Die persistente Speicherung von Artikeldaten soll durch Serialisierung dieser Instanz auf ein lokales File ~/public_html/servlets/store/artikel.dat erfolgen. 
Achten Sie dabei darauf, dass das Verzeichnis ~/public_html/servlets/store alle Zugriffsberechtigungen besitzt (z.B. durch Ausführen des Befehls: chmod 777 store). Die persistente Speicherung soll immer dann erfolgen, wenn ein neuer Artikel erfasst bzw. ein Artikel geändert wurde (siehe ArtikelDetailServlet).

3. Klasse ArtikelVerwaltungServlet
Dieses Servlet soll eine HTML-Seite (Einstiegsseite der Applikation) generieren, um die Daten aller Artikeln, falls vorhanden, in einer Tabelle anzuzeigen.  Für jeden Artikel muss ein Link zum Ändern (ArtikelDetailServlet)  bzw. zum Löschen (ArtikelVerwaltungServlet) zur Verfügung stehen. Weiters soll es einen Link (ArtikelDetailServlet) geben, um einen neuen Artikel zu erfassen. Ein Bespiel, das zeigt, wie die vom ArtikelVerwaltungServlet generierte Seite aussehen könnte, finden Sie hier.
 
Anmerkung: 
Beim erstmaligen Aufruf von ArtikelVerwaltungServletsollen die persistent gespeicherten Artikeldaten vom lokalen File ~/public_html/servlets/store/artikel.dat (falls vorhanden) übernommen werden (Deserialisierung der Instanz der Klasse ArtikelVerwaltung).

4. Klasse ArtikelDetailServlet

Dieses Servlet soll eine HTML-Form generieren, um einen neuen Artikel erfassen zu können bzw. einen Artikel ändern zu können. Beim Erfassen eines neuen Artikels muss darauf geachtet werden, dass die ID des neuen Artikels eindeutig ist. Für jeden neuen Artikel muss ein Objekt der Klasse Artikel erzeugt werden und in der Artikelverwaltung erfasst werden. 
 
Anmerkung: 
Nach dem erfolgreichen Erfassen bzw. Ändern eines Artikels ist das Objekt der Klasse ArtikelVerwaltung mittels Objektserialiserung im File ~/public_html/servlets/store/artikel.dat zu speichern. Danach soll wieder die Liste aller Artikeln angezeigt werden (ArtikelVerwaltungServlet).


Abgabemodalitäten:

Anmerkung: Zur Abgabe des fertigen Java-Programms (inklusive Dokumentation) ist weiters folgendes zu beachten: