20. FilterConfig interface


Servlet Filter in Java: Previous

FilterConfig interface

FilterConfig object is created and used by web container to pass init parameters to a filter during initialization.

Methods of FilterConfig interface:

1. getFilterName(): Returns the name of the filter defined in web.xml.
Syntax: public String getFilterName() 
2. getInitParameter(String name): Returns the value of the specified parameter.
Syntax: public String getInitParameter(String name) 
3. getInitParameterNames(): Returns the names of all parameters as Enumeration.
Syntax:public Enumeration getInitParameterNames() 
4. getServletContext(): Returns the object of ServletContext.
Syntax: public ServletContext getServletContext()

Example:

MyFilter.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
 
/**
* This class is used as a filter.
* @author java tutorial point
*/
public class MyFilter implements Filter {
 private static final long serialVersionUID = 1L;
 private FilterConfig filterConfig;
 
 public void init(FilterConfig filterConfig) 
                          throws ServletException {
  this.filterConfig = filterConfig;
 }  
 
 public void doFilter(ServletRequest request, 
   ServletResponse response,FilterChain chain) 
                    throws IOException, ServletException {
 
 
 response.setContentType("text/html"); 
     PrintWriter out = response.getWriter();
 
     //get parameters from filterConfig object.
     String appUser = filterConfig.getInitParameter("appUser");  
     if(appUser.equals("jai")){
      chain.doFilter(request, response);
     }
     else {
      out.print("Invalid application user.");
     }           
    }  
 
    public void destroy() {
 
    }  
}
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * This class is used to print login 
 * message if user logged in successfully.
 */
public class WelcomeServlet extends HttpServlet {
   private static final long serialVersionUID = 1L;
 
   //no-argument constructor
    public WelcomeServlet() {
 
    }
 
    protected void doGet(HttpServletRequest request, 
   HttpServletResponse response)
                throws ServletException, IOException {
  response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
 
        out.print("

Valid application user.

"
); out.close(); } }
web.xml
xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">
 
  <servlet>
    <servlet-name>WelcomeServlet</servlet-name>
    <servlet-class>
     com.javawithease.business.WelcomeServlet
    </servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/WelcomeServlet</url-pattern>
  </servlet-mapping>
 
  <filter>  
   <filter-name>MyFilter</filter-name>  
   <filter-class>
    com.javawithease.business.MyFilter
   </filter-class> 
   <init-param>
     <param-name>appUser</param-name>
     <param-value>jai</param-value>
   </init-param> 
  </filter>  
 
  <filter-mapping>  
   <filter-name>MyFilter</filter-name>  
   <url-pattern>/WelcomeServlet</url-pattern>  
  </filter-mapping>  
 
</web-app>

Output: