$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.