A simple web application demonstrating the usage of filters in JSP and Servlets. This application uses a LoggingTimeFilter for logging the time of incoming request and outgoing response in ServletContext's log . This information gets printed on the Server's log displayed on the console.
Filter Used here is :
After implementing filter, just make a request to a server with any implemented Url of JSP or Servlet and see the output at the console. I made a anonymous request to server and got the following output at the server's log console:
Video tutorial to demonstrate @WebFilter annotation. Filter Used here is :
package com.hubberspot.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
// Any request accessed by pattern /* will be intercepted by this
// filter whose name is LoggingTimeFilter. No web.xml is needed
// if we are using annotations
@WebFilter(urlPatterns={"/*"} , filterName="LoggingTimeFilter" )
public class LoggingTimeFilter implements Filter {
// This filter implements Filter so it has to provide implementations
// for Filter interface
private FilterConfig filterConfig = null;
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig fConfig) {
this.filterConfig = fConfig;
}
// 3rd implementation of Filter interface
public void destroy() {
this.filterConfig = null;
}
// 2nd implementation of Filter interface
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain
) throws IOException, ServletException {
// extracting the ServletContext from filterConfig
ServletContext context = filterConfig.getServletContext();
// Taking incoming time of request
double incomingTime = System.currentTimeMillis();
// printing the information in the ServletContext's log
context.log("Incoming request time : "+ incomingTime/1000.0);
// Pre processing of filter before doFilter() method
chain.doFilter(request, response); // here request goes to server
// Post processing of filter before doFilter() method
// Taking outgoing time of response
double outgoingTime = System.currentTimeMillis();
// printing the information in the ServletContext's log
context.log("Outgoing response time : "+ outgoingTime/1000.0);
double diffInTime = outgoingTime - incomingTime ;
// printing the information in the ServletContext's log
context.log("Difference in the request and response : "
+ diffInTime/1000.0);
}
// 3rd implementation of Filter interface
public void init(FilterConfig fConfig) throws ServletException {
this.filterConfig = fConfig;
}
}
After implementing filter, just make a request to a server with any implemented Url of JSP or Servlet and see the output at the console. I made a anonymous request to server and got the following output at the server's log console:
Using annotation
