Configure your Servlet with Initialization Parameters
It is possible to pass parameters from the web.xml deployment descriptor to your Servlets. You can either use application-wide context parameters or servlet-specific initialization parameters.
The following web.xml uses both to configure a servlet:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> <context-param> <!-- application-wide settings --> <param-name>appName</param-name> <param-value>Example.com</param-value> </context-param> <context-param> <param-name>webmaster</param-name> <param-value>tim@example.com</param-value> </context-param> <servlet> <servlet-name>mainServlet</servlet-name> <servlet-class>com.jarfiller.example.MainServlet</servlet-class> <init-param> <!-- servlet-specific settings --> <param-name>background-color</param-name> <param-value>black</param-value> </init-param> <init-param> <param-name>foreground-color</param-name> <param-value>white</param-value> </init-param> </servlet> </web-app>
Here is a init method that reads from the initialization parameters:
public void init(ServletConfig config) throws ServletException {
super.init(config); // important for getServletContext and getServletConfig (more)
log(String.format(
"Configuration:\nappName=%s\nwebmaster=%s\nbg-color=%s\nfg-color=%s\n",
getServletContext().getInitParameter("appName"), // application-wide parameters
getServletContext().getInitParameter("webmaster"),
getServletConfig().getInitParameter("background-color"), // servlet parameters
getServletConfig().getInitParameter("foreground-color")
));
}

