Advanced Java
Services
|
Parameter aus der web.xml auslesen
|
|
init- und context-Parameter
init-Parameter sind Teil eines Servleteintrags, während context-Parameter in einem eigenständigen Contexteintrag
stehen, der direkt unter dem Tag <webapp> angesiedelt ist. Das kann zum Beispiel so aussehen:
<web-app>
...
...
<servlet>
<servlet-name>FooServlet</servlet-name>
<jsp-file>/HelloWorld3-Log4j.jsp</jsp-file>
<init-param>
<param-name>mail</param-name>
<param-value>workslikeacharm</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>FooServlet</servlet-name>
<!-- <url-pattern>/xyz.do</url-pattern> -->
<url-pattern>/HelloWorld3-Log4j.jsp</url-pattern>
</servlet-mapping>
...
...
<context-param>
<param-name>log4j-file</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
...
...
</web-app>
Auslesen der context-Parameter
out.println("<b>Alle context-Parameter über ServletContext aus der web.xml:<br/>");
ServletContext context = this.getServletContext();
out.println("ServletContext = " + context.getClass().getName() + "<br/>" );
//ServletContext = org.apache.catalina.core.ApplicationContextFacade
// mißverständlicher Name getInitParameterNames holt die keys der context-param Einträge
// aus der web.xml
// contextparameter können im Servletcode gesetzt werden,
// diese werden nicht in die web.xml geschrieben
context.setInitParameter("code", "codeparam");
Enumeration<String> contextEnum = context.getInitParameterNames();
for(;contextEnum.hasMoreElements();)
{
String key = contextEnum.nextElement();
String value = context.getInitParameter(key);
out.println("key = " + key + "<br/>" );
out.println("value = " + value + "<br/>" );
}
out.println("</b><br/>" );
Auslesen der init-Parameter
// init-Parameter kann man nicht im code setzen
out.println("<b>Alle init-Parameter aus der web.xml:<br/>");
ServletConfig config = this.getServletConfig();
out.println("ServletConfig = " + config.getClass().getName() + "<br/>" );
//ServletConfig = org.apache.catalina.core.StandardWrapperFacade
Enumeration<String> initEnum = config.getInitParameterNames();
while(initEnum.hasMoreElements())
{
String key = initEnum.nextElement();
String value = config.getInitParameter(key);
out.println("key = " + key + "<br/>" );
out.println("value = " + value + "<br/>" );
}
out.println("</b><br/>" );