Get filter init parameters in a servlet

init-parameters, java

Solution

Why would you need it in your servlet to begin with? Filter parameter belongs to filter. Your options are:

- Move said parameter to context init parameter; you'll be able to access it from both filter and servlet.

- In your filter's doFilter method set an attribute (on request) with parameter value, have you servlet read it.

Context parameter example.

web.xml:

  <context-param>
    <param-name>param1</param-name>
    <param-value>value</param-value>
  </context-param>

your code:

String paramValue = getServletContext().getInitParameter("param1");

and the filter would have access to the same param value using:

String paramValue = filterConfig.getServletContext().getInitParameter("param1");

Problem

I have a filter that looks like this: ``` <filter> <filter-name>TestFilter</filter-name> <filter-class>org.TestFilter</filter-class> <init-param> <param-name>timeout</param-name> <param-value>30</param-value> </init-param> </filter> ``` Since we are talking ServletFilter and Servlets. Essentially, I am already in my servlet and have executed the first part of the doFilter. So the container must know the init-parameter. I don't have access to change the Filter class. Is it possible to get the init-parameter value given an HttpServletRequest object? The only solution I can think of is to read the web.xml as a resource and try to find the value manually. But it feels like there is a better solution.

Original source