HandlerInterceptor
  拦截器是aop面向切面编程思想的一种实现,通过拦截器我们可以进行权限判断,以及打印日志等操作(还有很多比如优化,错误处理,持久化之类的这里就不全都写出来了...),在我自己的项目中主要完成了对登陆用户的登陆状态判断。其实他和Spring中的过滤器Filter有点像,不过找了一下资料他们两个之间的区别还是蛮大的。
创建方法
  创建class文件实现HandlerInterceptor接口,通过注解@Componet标注bean实例,注入beanFactory。在文件中,我们可以使用Spring中的bean,使用Autowired自动注入进来就可以。
  

生命周期

/*
     Controller之前执行
*/
public class DemoInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, 
       HttpServletResponse httpServletResponse, Object o) throws Exception {
        logger.debug("preHandle"+handler.toString());
    }
/*
     Controller之后执行,TemplateEngine之前
*/
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, 
           HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
         logger.debug("postHandle"+handler.toString());
    }
/*
    TemplateEngine之后
*/
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, 
       HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        logger.debug("afterCompletion"+handler.toString());
    }