Die erste Übungsaufgabe wird dahingehend ausgebaut, dass als
Benutzerschnittstelle für die Abfrage des Telefonbuchs ein
Webbrowser zu verwenden ist. Das
Suchverfahren nach Name und/oder Telefonnummer mit
nebenläufig arbeitenden Threads und alle übrigen
Anforderungen der ersten Übungsaufgabe bleiben bestehen.
Konkretisierung
Strukturell gesehen wird in dem Programm
TelefonbuchServer.java aus der
ersten Übungsaufgabe die Benutzerschnittstelle durch
eine Socketschnittstelle ersetzt.
Die Klasse Telefonbuch mit ihren
Datenstrukturen und
Methoden bleibt davon unberührt. Über die
Socketschnittstelle werden Browser-Requests entgegengenommen
und beantwortet. Benutzerschnittstelle für eine
Telefonbuchabfrage ist jetzt der Browser.
Sie müssen mit HTML arbeiten,
es genügt jedoch,
die HTML-Seiten schlicht zu halten. Eine über HTML
hinausgehende Webseitengestaltung ist nicht erforderlich.
Lassen Sie allen HTML-Kode von
Ihrem Programm erzeugen.
Beim Testat müssen der Webbrowser und der
Telefonbuchserver auf zwei verschiedenen
Rechnern des Übungsraums laufen.
Das Testat wird an dem Rechner abgenommen, auf dem der
Browser läuft. Dort führen Sie bitte ein
lokales Login durch und stellen
Ihre Programme bereit. Der Rechner, auf dem Ihr Programm
laufen soll, wird erst beim Testat vom Dozenten bestimmt.
Auf diesem Rechner dürfen Sie dann kein lokales Login
durchführen. Sie müssen, so wie in der Vorlesung
gezeigt, Dateien mit sftp
übertragen und Programme mit
ssh auf dem für Sie fernen
Rechner starten.
Der erstmalige Zugriff auf Ihr Programm erfolgt über
die URL-Eingabezeile des Browsers. Schaffen Sie über
Ihre HTML-Seiten eine Möglichkeit, Ihr Programm zu
beenden, ohne dass beim Browser eine Fehlersituation
entsteht.
Die meisten Browser fordern nach einem Browserneustart beim
Erstzugriff auf eine Webseite gleich mehrfach von dort ein
sogenanntes Favorite Icon (favicon)
an, das sie vor ihre URL-Eingabezeile setzen wollen.
Ignorieren Sie in Ihrem Programm derartige Requests.
Es ist unzulässig, mit JavaScript
oder ähnlichen Werkzeugen zu arbeiten, da Benutzer
diese Features möglicherweise
aus Sicherheitsgründen abgeschaltet haben und Sie
dieses Abschalten nicht beeinflussen können.