Erweiterbarer Webserver (12 Punkte) - SSW

Werbung
Institut für Systemsoftware (Markus Löberbauer)
Praktikum aus Softwareentwicklung SS 2012
Repository URL: svn://ssw.jku.at/2012S/PSW2/k<MatrNr>/ExtensibleWebServer/
Letzter Abgabetermin: Montag, 30.04.2012, 1200 Uhr
Übung 4
Erweiterbarer Webserver (12 Punkte)
Implementieren Sie einen erweiterbaren Webserver. Ihr Webserver soll auf eine einstellbare IPAdresse (InetAdress, zB: 127.0.0.1) und Port (zB: 8888) hören (ServerSocket). Arbeiten sie die Anfragen an den Server in Threads ab (entweder mit ExecutorService oder mit einfachen Threads).
Es genügt wenn Ihr Webserver Get-Requests versteht. Die Anfrage nach "/" soll mit einer Übersicht über die installierten Aktionen beantwortet werden (siehe Abbildung 1).
Abbildung 1. Übersicht der installierten Aktionen im erweiterbaren Webserver.
Ihr Webserver soll mit Aktionen erweitert werden können, die Aktionen sollen als Java Services
installiert werden können. Die Schnittstelle für diese Aktionen ist in Abbildung 2 gegeben. Der
Webserver soll die Aktionen über ihre Namen erkennen, zB: bei einer Anfrage nach "/HelloWorld"
zeigt der Webserver das Ergebnis der HelloWorld-Aktion an. Implementieren Sie eine solche Hallo-Welt-Aktion (siehe Abbildung 3) als Java Service und zeigen Sie damit, dass Ihr Webserver erweiterbar ist. Versucht der Benutzer eine Aktion aufzurufen die es nicht gibt soll der Fehler 404
geliefert werden (Abbildung 4).
public interface WebAction {
String getDescription();
String getName();
void run(String[] arguments, PrintWriter out);
}
Abbildung 2. Schnittstelle für Aktionen des erweiterbaren Webservers.
Abbildung 3. Übersicht der installierten Aktionen im erweiterbaren Webserver.
Abbildung 4. Ansicht des Programms wenn die gewünschte Aktion nicht installiert ist.
Institut für Systemsoftware (Markus Löberbauer)
Praktikum aus Softwareentwicklung SS 2012
Repository URL: svn://ssw.jku.at/2012S/PSW2/k<MatrNr>/ExtensibleWebServer/
Letzter Abgabetermin: Montag, 30.04.2012, 1200 Uhr
Übung 4
Such-Aktion (12 Punkte)
Implementieren sie eine Suchaktion für ihren erweiterbaren Webserver als Java Service. Die
Suchaktion soll ein Wort auf einer Webseite und den darin verlinkten Seiten suchen (Links nur
einmal verfolgen). Sie können einen Socket oder eine HttpURLConnection verwenden, um die
Webseiten zu laden. Eine Beispielanwendung der Suchaktion ist in Abbildung 5 und 6 gegeben.
Abbildung 5. Eingabefelder der Suchaktion.
Abbildung 6. Suchaktion nach der Suche von Informatik auf ssw.jku.at.
Hinweise
Implementieren Sie saubere, kurze Methoden; wählen Sie sprechende Klassen-, Methode- und
Variablennamen. Verwenden Sie geeignete Sichtbarkeitsattribute, d.h., so wenig sichtbar wie
möglich, so viel sichtbar wie nötig. Halten Sie Ihren Code sauber, d.h., entfernen Sie toten Code,
entfernen Sie auskommentierten Code, verzichten Sie auf Vergleiche mit Boolean-Literalen (zB: if
(a == true) ... sollte if (a) ... sein) und sinnlose if-Statements (zB: if (a) { return false; } else { return
true; } sollte return !a; sein). Geben Sie ihre Klassen in passende packages.
Herunterladen