In vergangenen SEPs mit ähnlichen Aufgabenstellungen musste immer wieder festgestellt werden, dass eine große Fülle von Techniken und Technologien benötigt werden. Wir haben eine Liste von Tools, Einführungen, Tutorials und Handbüchern zu Technologien wie Java Server Faces, Servlets, etc. zusammengestellt. Den meisten Nutzen zieht man aus diesen Dokumentationen erfahrungsgemäß indem man das Beschriebene sofort ausprobiert. Auf dieser Seite finden Sie daher eine Aufgabe, zu deren Realisierung Sie viele der im SEP benötigten Techologien und Techniken einsetzen müssen.
Die Aufgabe ist zur Einarbeitung in SEP wichtig. Unserer Meinung nach ist es für das Gelingen des SEP notwendig dass jedes Mitglied Ihrer Gruppe in der Lage ist diese Aufgabe zu bewältigen und zwar bevor mit dem Pflichtenheft begonnen wird. Deshalb raten wir dringend, dass diese Aufgabe von jedem Teammitglied eigenständig bearbeitet und beim jeweiligen Betreuer abgegeben wird. Letztmöglicher Abgabetermin ist bereits der 17. April 10:00 Uhr.
Sie sollen wie das spätere Projekt die Einführungsaufgabe in JSF Technologie realisieren. Dazu sollen/müssen Sie sich erst/parallel in JSF einlesen!
Installieren Sie Tomcat 9.0.x wie im SEP-Tutorial beschrieben im CIP-Pool oder auf Ihrem privaten Rechner.
Falls Sie Ihren privaten Rechner nutzen wollen installieren Sie darauf
  Eclipse IDE for
  Java EE Developers in der jeweils neusten Version welches das für JEE
  Projekte notwenige WTP-Plugin und dessen Voraussetzungen bereits enthält. 
  Dieses Plugin übernimmt eine Vielzahl von Routineaufgaben im Zusammenhang
  mit Tomcat, wie z.B. das Starten und Stoppen, das Deployment, bietet aber
  auch Syntaxhighlighting für Facelets und HTML. Alternativ können Sie
  natürlich auch Eclipse Classic verwenden und die Plugins separat
  installieren. Im CIP-Pool ist die Eclipse Installation mit den notwenidgen
  Plugins für Sie bereits erledigt. Sie können es einfach mit dem Kommando
  eclipse starten. Die Abgabe versteht sich dann als von
  Eclipse WTP exportierte war-Datei Ihres Projekts, welche auch die Sourcen
  enthält. Falls Sie eine andere Entwicklungsumgebung oder z.B. das Build
  Tool Ant einsetzen
  wollen, besprechen Sie die Form der Abgabe vorher mit Ihrem Betreuer.
Nach dem ersten Start von Eclipse sollten Sie der IDE das
  Installationsverzeichnis des Java SDKs/JRE kontrollieren.  Bei
  Bedarf erstellen Sie unter Window > Preferences > Java >
  Installed JREs mit Add... > Standard VM > Next einen
  Eintrag. Im erscheinenden Dialog geben Sie unter JRE home: den
  Pfad unter dem Ihr Java SDK/JRE gespeichert ist an. Im CIP Pool ist dieser
  z.B. /usr/lib/jvm/java-10-oracle. Auf Ihrem Windows Rechner
  ist z.B. C:/Programme/Java/jre-10.0.x der richtige Eintrag. 
   Bestätigen Sie dann mit Finish.
Nun geben Sie der IDE das Tomcat Installationsverzeichnis bekannt. 
  Legen Sie dazu im Menü Window > Preferences > Server >
  Runtime Environment mit Add... ein neues Server Runtime
  Environment für Apache Tomcat 9.0.x an. In der zweiten Dialogseite (nach
  Drücken von Next ändern Sie den Eintrag unter JRE: auf
  Ihr vorher installiertes Java JDK. Anonsten erscheint oben eine
  Warnmeldung. Das Tomcat installation directory setzen Sie auf den
  Pfad wo Sie den Server installiert haben, z.B. 
  /home/cip/<login>/apache-tomcat-9.0.x . Alle sonstigen
  Einstellungen des Wizards lassen Sie auf Default.
Um die Konfiguration zu testen importieren Sie jetzt die Demo Webapplikation im Menü File > Import... > Web > WAR file. Sie starten die Applikation mit einem Rechtsklick auf das jsfdemo-Projekt mit dem Menüpunkt Run As > Run on Server. Im folgenden Dialog bestäigen Sie die Auswahl Ihrer vorher installierten Server Runtime Umgebung. Unseren Kommentar zur Verwendung von CDI wie in der Demo lesen Sie bitte im Tutorial.
Für JSF-Projekte stellen Sie sicher, dass sich die entsprechende jar-Dateien für JSF und CDI (und für deren Abhäbngigkeit zu JAXB) im Classpath befinden. Am einfachsten legen Sie die Dateien in das Verzeichnis WebContent/WEB-INF/lib Ihrer Web-Applikation.
Auf der ersten Seite soll sich der Benutzer mit einem Loginnamen und einem Passwort anmelden können. Die Anmeldung wird überprüft indem Loginname und Passwort mit einer im Programm fest kodierten Liste von zulässigen Benutzern verglichen wird. Praktisch sieht das Ganze so aus, dass die Applikation über eine Start-Seite betreten wird, auf der ein Login-Formular angeboten wird. Nachdem der Benutzer auf den Login Knopf gedrückt hat, werden in der damit registrierten Action-Methode die Login-Daten überprüft. Je nach Ergebnis wird (über den Rückgabewert der Action-Methode) die gleiche Seite weiter angezeigt, jedoch jetzt mit einer Fehlermeldung, oder zur Seite mit den jeweiligen Nutzerdaten gewechselt.
Die Daten sind ebenfalls fest im System kodierten und sollen mindestens Loginnamen, Passwort als "****", Name, Geburtsdatum und Anschrift umfassen. Alle angezeigten Daten sollen editierbar sein, entweder direkt (und am einfachsten) durch ein Formular mit Speichern-Knopf oder erst durch einen Klick auf einen Link pro Datum. Nach einer Änderung soll wieder die Seite mit allen Benutzerinformationen angezeigt werden. Geänderte Daten sollen zwar erhalten bleiben solange Tomcat läuft, sie brauchen aber hier nicht persistent gemacht werden.
Achten Sie darauf dass es mindestens zwei Benutzer in Ihrem System gibt. Ihr System sollte folgenden Testfall korrekt verarbeiten: Melden Sie sich als Benutzer A an und ändern Sie einige der Daten. Gehen Sie dann wieder zurück zur ersten Seite (Anmeldung) und melden sich als Benutzer B an. Welche Daten sehen Sie? Sie brauchen eine Sessionverwaltung! JSF unterstützt Sie dabei weitgehend automatisch.
Nun sollen die Daten über die Benutzer nicht mehr fest in Ihre Webapplikation kodiert sein, sondern in der PostgreSQL SEP-Datenbank verwaltet werden und Neustarts von Tomcat überstehen.
Besorgen Sie sich dazu (soweit nicht schon automatisch zugewiesen) bei
  einem der Betreuer eine Kennung. Auf der Download Seite finden Sie eine Beispielapplikation zur
  Datenbankanbindung und den passenden Datenbanktreiber. Damit
  Ihre Web-Applikation den Datenbanktreiber automatisch findet, legen Sie
  die jar-Datei einfach in den WEB-INF/lib Ordner.
Verwenden Sie keinen O/R-Mapper zum Datenbankzugriff, wie z.B. Hibernate, EclipseLink oder/und JPA. Leider benutzt Bernd Müller JPA in seinem Buch, es ist aber relativ einfach davon zu abstrahieren. Auch im Praktikum/Projekt selbst wird klassisch per SQL über JDBC auf eine Datenbank zugegriffen. Dies soll verhindern sich neben JSF in eine weitere neue Technologie einarbeiten zu müssen und eine (weitere und ggf. sehr lästige) Fehlerquelle soll ausgeschlossen werden. Vom Aufwand und Codeumfang sollte dies keinen wesentlichen Unterschied bedeuten.