Initialisierungsparameter
Bisher haben wir Deployment-Descriptor (die Datei WEB-INF/web.xml) benutzt, um unsere Servlets und Filter dem Tomcat bekannt zu machen. Darüber hinaus können wir aber auch eine ganze Menge an Konfiguration darin unterbringen.
Die einfachste Möglichkeit sind die Context-Parameter, die global in allen Servlets, Filtern und JSP zur Verfügung stehen. Sie werden durch einen einfachen XML Eintrag zu Anfang der <web-app> definiert:
WEB-INF/web.xml
server-admin contextparameter@myhost.de
Auf einen so definierten Parameter können Sie über seinen Namen in Servlets und Filtern mit
getServletContext().getInitParam("server-admin")
und erhalten den angegebenen Wert. In JSPs können Sie auch benutzen:
application.getInitParam("server-admin").
Für jedes Servlet (und jeden Filter) können Sie in gleicher Weise Parameter definieren und im Servlet benutzen. Die Syntax lautet dann:
WEB-INF/web.xml
InitParam
/bsp/kap4/params.jsp
client-mail
initiparam@clientserver.com
Beschaffen Sie sich diesen Wert im Servlet mit: getServletConfig().getInitParameter("client-mail"). Also Servlet-Config im Gegensatz zu Servlet-Context wie oben.
Auch in JSP lassen sich solche Parameter nutzen, wenn Sie die JSP als Servlet registrieren. Das kann auch aus anderen Gründen nützlich sein, wenn Sie beispielsweise eine kurze URL wollen oder den physikalischen Pfad verschleiern wollen:
Code: /bsp/kap4/params.jsp
Init parameter
| getServletContext().getInitParameter("server-admin") | |
| Context Parameter: | <%=getServletContext().getInitParameter("server-admin") %> |
| getServletConfig().getInitParameter("client-mail") | |
| Config Parameter: | <%=getServletConfig().getInitParameter("client-mail") %> |
Diese JSP ist im Deployment Descriptor als Servlet registriert.
Wie Sie bemerken, steht der Parameter nur zur Verfügung, wenn Sie die JSP auch unter ihrem Servlet-Namen aufrufen.
Tipp: Lösen Sie nun die Aufgaben: AdultFilter