Filters are helpful in performing filter functionality in Java web application Application. A filter implements the javax.servlet.Filter interface. The primary filter functionality is implemented by the doFilter() method of the filter.
A filter is used to perform a particular task either before or after the actual functionality of a web application is performed. For example, if a request is made for a particular resource such as a Servlet in web application and a filter is used, the filter code may execute and then pass the user on to the Servlet. The filter may run a check before letting the user to the actual page.The filter checks the user permissions to access a particular servlet, and it might send the user to an error page rather than to the requested resource.
Below is a code which shows the filter in web.xml file
web.xml
<webapp>
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>com.mugil.filter.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Filter code is java is as below
TestFilter.java
public class TestFilter implements Filter
{
public void init(FilterConfig fConfig) throws ServletException
{
System.out.println("Filter Initialized");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("Filter Executed");
chain.doFilter(request, response);
}
public void destroy()
{
System.out.println("Filter Destroyed");
}
}
The init() method will be executed every time the server starts.The doFilter method is executed every time a Servlet or JSP page is accessed in the context.Filter destroy() method is called when the server is stopped.