springMVC自定义拦截器
springMVC自定义拦截器作用:
1. springMVC自定义拦截器用来对请求进行拦截处理,通过自定义拦截器可以实现特定的功能。
2. 拦截器的功能体现在继承接口的三个方法上,如下:
/**
* @Author tjt
* @date 2022/7/26 21:53
* @Version 1.0
* 自定义拦截器 ,需要在spring配置文件中配置,需要拦截的请求
*/
@Component
public class MyInterceptor02 implements HandlerInterceptor {
/**
* 1.该方法在目标方法执行前,被执行,可以在方法对发送来的数据进行验证处理
* 2.如果该方法返回false,不再执行目标方法
* 3.该方法可以获取到,request, response,handler
* 4.这里根据业务进行拦截,并跳转到指定页面
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("===第2个拦截器MyInterceptor02被执行--preHandle--==");
return true;
}
/**
* 1.目标方法执行后,执行postHandle方法
* 2.该方法可以获取到目标方法返回的modelAndView
* @param request
* @param response
* @param handler
* @param modelAndView
* @throws Exception
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("===第2个拦截器MyInterceptor02被执行--postHandle--==");
}
/**
* 在视图渲染之后执行
* @param request
* @param response
* @param handler
* @param ex
* @throws Exception
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("===第2个拦截器MyInterceptor02被执行--afterCompletion--==");
}
}
springMVC自定义拦截器使用:
1.自定义拦截器类必须实现HandleInterceptor接口
2.必须将其注入到ioc容器
3.必须在springmvc配置文件中进行配置
配置方式如下(三种配置方式):
springMVC自定义拦截器执行流程: