SpringMVC拦截器

79 阅读1分钟

spring拦截器

  • 是spring Aop的一种应用,在不修改源码的情况下,执行一段代码,以增强现有方法

样例

  • 实现HandlerInterceptor接口
public class InterceptorT implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("=========到达controller前==============");
        return true;//return true 放行
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("===========经过controller后============");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("=============一切接收后,清理一下============");
    }
}
  • 配置spring
<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/><!--拦截所有请求-->
            <bean class="com.mvc.interceptor.InterceptorT"/>
        </mvc:interceptor>
</mvc:interceptors>
  • 测试
@Controller
public class InterceptorController {
    @RequestMapping("/t")
    @ResponseBody
    public String test(){
        System.out.println("来自controller");
        return "来自controller";
    }
}

image.png