Fingerübung 1: JSPs und NetBeans (1 Woche)

Werbung
SOFTWARE ENGINEERING 2
SCHMIEDECKE 13
FINGERÜBUNGEN ZUM JAVA WEB-FRONTEND MIT NETBEANS
Arbeitsziel:
Einrichten der Arbeitsumgebung und erstes Kennenlernen der Java-Web-Programmierung
mit NetBeans, Einführung in JSP, JSF und den Standardschutz für Web-Anwendungen.
Bearbeitungszeitraum: 5 Kurswochen mit Zwischenabnahmen.
Die praktischen Übungen sind essenziell für das Verständnis der Theorie. Deshalb muss jeder
Teilnehmer (nicht jede Gruppe) die praktische Arbeit am Rechner selbst durchführen und verstehen!
Bei der Abnahme müssen alle Gruppenmitglieder anwesend sein.
Abgabe:
Halten Sie bitte die wesentlichen Arbeitsschritte, alle Probleme mit ihren Lösungen, alle Erkenntnisse
und evtl. ungelöste Fragen stichwortartig in einem Protokoll fest und laden es in Moodle hoch (als
Gruppe). Kopieren Sie nicht das Tutorial, sondern ergänzen sie Ihre Erfahrungen damit!
________________________________________________________________________________
Fingerübung 1: JSPs und NetBeans (1 Woche)
Falls Sie auf Ihrem eigenen Rechner arbeiten, installieren Sie bitte die aktuelle NetBeans IDE für
Java EE mit dem JSF2.x-Plugin. Der aktuelle Glassfish-Server und die Java-DB „Derby“ sind
automatisch enthalten. Natürlich sollten Sie immer ein aktuelle Java-Version installiert haben.
1. Machen Sie sich anhand des JSP-Tutorials (www.jsptutorial.org) mit der JSP-Syntax vertraut.
Lesen Sie dazu unbedingt die Abschnitte 7-10. Die Abschnitte 1-3 sind für das Verständnis
sehr zu empfehlen. Sie müssen danach die JSP-Syntax nicht perfekt beherrschen, da Sie
praktisch keinen JSP-Code schreiben werden – aber Sie sollten JSP lesen und verstehen
können. Notieren Sie die wichtigsten Syntaxelemente im Protokoll.
Praktische Übungen machen Sie in NetBeans unter Verwendung des Glassfish-ApplicationServers (nicht Tomcat), Sie müssen also nicht die Installationsanweisungen des JSP-Tutorials
umsetzen. Der Netbeans-Projekttyp ist Java-Web-Application, der Dateityp JSP.
2. Unter Help > Online Docs & Support > Java EE & Web Applications finden sie die
einschlägigen Tutorials für Web-Anwendungen in Java. Arbeiten Sie bitte das erste Tutorial,
Introduction to Developing Web Applications, durch. Lesen sie die JSPs, die entstehen, und
studieren Sie sich auch die entstehende Dateistruktur! Kommentieren Sie die JSP-Seiten,
indem Sie zu jedem Stück JSP-Code vermerken, um welches Syntaxelement es sich handelt
und was es bewirkt. Verwenden Sie dafür JSP-Kommentare, also <%-- --%>. Übernehmen
Sie die kommentierten JSP-Seiten in Ihr Protokoll.
Achtung Falle: „name“ ist hier verwirrenderweise ein Synonym mit sehr unterschiedlichen
Bedeutungen. Am besten wählen sie andere Bezeichner, die sich voneinander unterscheiden!
________________________________________________________________________________
Für „Mutige“: Um zu testen, ob Sie alles verstanden haben, schreiben Sie danach ohne NetBeans
eine einfache JSP-Hallo-Welt-Anwendung, erstellen Sie das Dateiverzeichnis von Hand und speichern
es als WAR gepackt direkt im Glassfish-Autodeploy-Verzeichnis
in Ihrer Domäne, z.B.
Z:\glassfish\domain1\autodeploy.
Für Kreative: Bauen Sie Ihre Anwendung zu einem kleinen Gästebuch aus, jedoch ohne
Datenpersistenz: Geben Sie dem entsprechenden Bean die Lebensdauer „application“, dann bleiben
die Daten bis zum nächsten Neustart des Servers erhalten. Wenn Sie CSS beherrschen, dann geben
Sie Ihren Seiten noch ein nettes Aussehen.
SOFTWARE ENGINEERING 2
SCHMIEDECKE 13
Fingerübung 2: JSF 2.0 mit NetBeans (2 Wochen)
Lernen Sie jetzt den Umgang mit dem Frontend-Framework JSF 2.0 kennen, indem Sie das Tutorial
Introduction to Java Server Faces 2.0 durcharbeiten (das letzte im “Getting Started“-Block). Wieder
ist es vorranging, dass Sie verstehen, was Sie tun – dokumentieren Sie es bitte durch Kommentare in
den JSF-XHTML-Seiten; benutzen Sie dazu HTML-Kommentare, also <!-- -->. Und natürlich schreiben
Sie alles, was Sie erkant haben, was Ihnen auffällt und was Probleme gemacht hat ins Protokoll.
(Wenn Sie den letzten Teil “Templates“ nicht schaffen, lesen Sie ihn bitte jedenfalls durch!
Fingerübung 3: Zugriffschutz und Sicherheit (2 Wochen)
Web-Anwendungen bieten breite Angriffsflächen, weil Sie grundsätzlich von jedem beliebigen
Benutzer im Netz – und das ist meistens das WWW – verwendet werden können. Deshalb müssen
Schutzmaßnahmen ergriffen werden. Die Standardmaßnahmen sind:



Authentifizierung und Autorisierung (Login und Zugriffschutz)
Eingabevalidierung
Timeout
Es reicht nicht, diese Schutzmaßnahmen irgendwie zu implementieren. Man sollte sich auf geprüfte
Standardwerkzeuge stützen, auch, damit die Anwendungen von Sicherheitsupdates profitieren.
Java-Applicationserver
bieten eine JAAS-Implementierung für die Authentifizierung und
Autorisierung, die sie in einem Tutorial kennenlernen werden. Sie wissen außerdem, wie Sie den
Server zu einem Timeout veranlassen. Darüber hinaus sollen sie sich mit den Validierungsmöglichkeiten in JSF auseinandersetzen.
1. Arbeiten Sie zunächst bitte das Tutorial Securing a Web Application im Block “Tutorials and
Articles”, Abschnitt ”Developing a Web Application“ durch. Im Protokoll erläutern Sie bitte die
Fachtermini (Role, Security Constraint, Principal - wenn Sie ein deutsches NetBeans nutzen,
finden Sie auch die Übersetzungen heraus!) und erklären Sie, wie man diese setzt und ändert.
Fehler und Sackgassen beim Durcharbeiten gehören natürlich auch wieder ins Protokoll.
Wichtig: Wie im letzten Tutorial, gibt es hier auch wieder viele Synonyme, d.h. dass z.B. „admin“
in verschiedenen Bedeutungen vorkommt. Bitte, ändern Sie folgendes:
 Usernamen und Passwörter
 Bezeichnung der Sicherheitsrollen
 Bezeichnung der Sicherheitsbeschränkungen
Finden Sie bitte außerdem 2 Wege, dem Admin zusätzlich Zugang zu den User-Seiten zu geben.
2. Als eigenes Beispiel für die grundlegenden Sicherheitsmechanismen bauen Sie jetzt ein kleines
JSF-Logbuch: Berechtigte Nutzer können Log-Einträge machen, bestehend aus Datum
(automatisch) Textzeile und Zahlencode für den Projektkontext. Legen sie mindestens zwei
Benutzer mit Schreibrecht und einen mit nur Leserecht an. Setzen sie außerdem ein Timeout und
validieren Sie die Eingaben mit JSF. Es ist keine Persistenz (also keine Datei oder Datenbank)
erforderlich: Füllen sie einfach eine Liste in einem Managed Bean mit Application Scope.
Wer gut zurecht kommt, kann folgende Erweiterungen vornehmen: Geben Sie statt des
Zahlencodes ein bestimmtes Muster vor (etwa 234.002.100 oder P34-22-SMI) und validieren Sie
es; tragen Sie zusätzlich den Nutzername ins Logbuch ein.
SOFTWARE ENGINEERING 2
SCHMIEDECKE 13
Links:
JSP-Tutorial
www.jsptutorial.org
Netbeans-Tutorials Java Web
http://netbeans.org/kb/trails/java-ee.html
Introduction
to Developing Web Applications
http://netbeans.org/kb/docs/web/quickstart-webapps.html
Introduction to Java Server Faces 2.0
http://netbeans.org/kb/docs/web/jsf20-intro.html
Securing a Web Application
http://netbeans.org/kb/docs/web/security-webapps.html
Aktueller Hinweis:
Oracle hat ein umfassendes JEE-6-Tutorial herausgebracht, das alle Themen, zumeist mit denselben
Beispielen, zusammenfasst. Es ist sehr viel genauer und ausführlicher, enthält aber auch deutlich
mehr Text. Für diesen Kurs relevant sind Part II – The Web Tier, Part VI –Persistence (für Meilenstein
2) und Part VI – Security (nur Abschnitte 39 und 40).
Ich stelle Ihnen frei, statt der oben genannten mit diesem Tutorial zu arbeiten. Geben sie das bitte in
Ihrem Protokoll an! Für die meisten ist es vermutlich eher eine gute Referenz, wenn Sie etwas nicht
verstehen oder genauer wissen wollen.
http://docs.oracle.com/javaee/6/tutorial/doc/bnatc.html
Herunterladen