views:

29

answers:

2

If I have:

  <context-param>
    <param-name>SomeParam</param-name>
    <param-value>SomeValue</param-value>
  </context-param>

in my web.xml, is this the servlet way of specifying options ( like in the way a config file is used ) , or am I doing something wrong? I know about init-param that can be specified for a servlet, but I'd like o make sure some values are the same for all the servlets.

+1  A: 

yeah you are right.Go ahead it works fine.

giri
+2  A: 

The <context-param> is to define context-wide initialization parameters which is available to all servlets. Inside a servlet you can obtain them by ServletContext#getInitParameter(), e.g.

public void init() {
    String someParam = getServletContext().getInitParameter("someParam");
}

That's the right way to have a "global" parameter for all your servlets. But you can also define servlet-specific initialization parameters inside <servlet> as follows:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
    <init-param>
        <param-name>someParam</param-name>
        <param-value>someValue</param-value>
    </init-param>
</servlet>

You can obtain them by the inherited GenericServlet#getInitParameter() method. E.g.

public void init() {
    String someParam = getInitParameter("someParam");
}
BalusC