$K(Semantik von web.xml) $R(Objective) Describe the purpose and semantics for each of the following deployment descriptor elements: error-page, init-param, mime-mapping, servlet, servlet-class, servlet-mapping, servlet-name, and welcome-file. $R\ $KK(Error-Pages) Das error-page Element, definiert Seiten die den Anwender über aufgetretene Fehler informiert. Die Syntax $S() errorCode | className pagePath $S\ Ein Fehler auf der Server-Seite kann durch eine Exception ausgelöst werden, oder durch die Anweisung sendError(anInteger) bzw. sendError(anInteger, aString) Folgende Exception kann ein Servlet oder ein Filter auslösen: * ServletException oder Unterklassen davon * IO Exception oder Unterklassen davon Treten andere Fehler auf, so können sie in ein ServletException gewrappt werden. $S() try() // Code der auf Datenbank zugreift catch(SQLException e){ throw new ServletException("SQL Exception",e); } $S\ Die standardmaessige Fehlerroutine wird nur aufgerufen, falls der Container in der error-page Deklaration keine entsprechende Location findet. Es wird durch die durch die URL spezifizierte Ressource aufgerufen. Erhält der ServletContainer eine ServletException oder eine Unterklasse, so ermittelt er mit der Methode ServletException.getRootCause die gewrappte Exception und benutzt die error-page Dekleration um eine Fehlerseite zu finden und umzuleiten. Location ist eine relative URL zur Wurzelverzeichnis der Webapplikation. Sie spezifiziert einer HTML-Seite, Servlet oder Java Servlet Page. Location muss mit einem Slash "/" beginnen. Beispiel $S() 404 /errors/404.html javax.servlet.ServletException /errors/excepton.jsp $S\ Hat der Container eine Fehlerseite gefunden, so können über folgende Attribute in der Anfrage genauere Information ausgelesen werden: * javax.servlet.error.status_code - Integer mit dem Code der von sendError mitgeben wurde. * javax.servlet.error.exception_type - Class Exception die ausgelöst wurde * javax.servlet.error.message - String der bei sendError bzw. der nicht aufgefangen Exception mitgegebem wurde * javax.servlet.error.exception - Die Exception die den Fehler ausgelöst hat * javax.servlet.error.request_uri - Die aktuelle URI der Fehlerseite * javax.servlet.error.servlet_uri - URI der Seite die den Fehler ausgelöst hat $KK(Init-Parameter) $S() aKey aValue [ein beschreibender Kommentar] $S\ Syntax $S() $S\ Das init-param ist dem servlet untergeordnet, und kann dort beliebig oft vorkommen. Es wird verwendet um ein Servlet mit Parameter zu initialisieren. Diese Parameter werden nachdem instantiieren eines Servlets eingelesen.Innerhalb eines Servlets muss der param-name eindeutig sein. Die Klasse ServleConfig enthält speichert diese initialen Werte und können mit folgenden Methoden ausgelesen werden: * getInitParameterNames() - Gibt als Enumeration alle Parameternamen zurück, ggf. eine leere Enumeration * getInitParameter(String) - Gibt als String den Wert des Parameters zurück, oder null $KK(mime-mapping) Das mime-mapping Element definiert Zuordnungen von Daten zu Applikationen, die sie benötigen. Syntax $S() fileExtension mimeType $S\ Die meisten Container haben standardmaessig Mappings für die gebräuchlichsten Dateiendungen (wie .htm , .gif, ) definiert.