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