Advanced Java Services | Parameter aus der web.xml auslesen |
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>
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/>" );
// 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/>" );