An example of interceptor is given below that prints all the Log information on the console
To use interceptor in your application do the following steps
1. Write a class that extends HandlerInterceptorAdapter class and overrride the methodConsider the class given below
MyInterceptor.java
package net.roseindia.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class MyInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = Logger.getLogger(MyInterceptor.class);
static {
BasicConfigurator.configure();
}
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
// TODO Auto-generated method stub
System.out.println("\n\n preHandle \n");
return super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
System.out.println("\n\npostHandle\n");
super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
System.out.println("\n\n afterCompletion \n");
super.afterCompletion(request, response, handler, ex);
}
}
Then map the above class in the dispatcher-servlet.xml as
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" p:interceptors-ref="myInterceptor" /> <bean id="myInterceptor" class="net.roseindia.interceptor.MyInterceptor" />
An example is given below that print the DEBUG log data on the console