Advanced   Java   Services Parameter aus der web.xml auslesen Back Next Up Home

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/>" );
Valid XHTML 1.0 Strict top Back Next Up Home