Filter for your Servlet

Filter is used to perform filtering tasks on the request or the response or both. It is an interface in the javax.servlet package.

Filters can be used for the following purposes:
1) Authentication Filters 
2) Logging and Auditing Filters 
3) Image conversion Filters 
4) Data compression Filters 
5) Encryption Filters 
6) Tokenizing Filters 
7) Filters that trigger resource access events 
8) XSL/T filters 
9) Mime-type chain Filter 

Filters have the following three methods:


Simple example of using filter for pre and post processing of response.

This is how my project looks like:



MyFilter will be applied before and after our MyServlet.

Here is the code:

index.html


<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

Welcome!

</body>
</html>

web.xml


<web-app>

<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.filter.servlet.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>

<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.filter.myFilter.MyFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/myServlet</url-pattern>
</filter-mapping>

</web-app>

MyFilter.java


package com.filter.myFilter;

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;

public class MyFilter implements Filter{

 @Override
 public void destroy() {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  
  pw.write("Pre-processing of filter");
  pw.write("<br>");
  chain.doFilter(request, response);
  
  pw.write("Post-processing of filter");
  
  pw.close();
 }

 @Override
 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub
  
 }

 
}



MyServlet.java


package com.filter.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet{
 
 
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
  PrintWriter pw = response.getWriter();
  
  pw.write("Welcome to My Servlet");
  
  pw.write("<br>");
 }

 
}


The output will look like this:

Comments

Popular posts from this blog

Writing your own ejabberd Module

npm ECONNREFUSED error

Conditional Flow - Spring Batch Part 6