一:定义拦截器的类:
自定义一个interceptor拦截器类,实现HandlerInterceptor接口,并重写接口的抽象方法
package com.alibaba.interceptors;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//1--》》》自定义拦截器类
@Component
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("调用DispatcherServlet前调用preHandler");
//请求放行(false表示禁止通行)
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("离开DispatcherServlet之后");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("渲染页面视图完毕之后");
}
}
二:注册拦截器
在config包下 创建一个配置类SpringMvcConfig,设置拦截规则
package com.alibaba.config;
import com.alibaba.interceptors.MyInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//2--》》》注册拦截器
@Configuration//配置类
public class SpringMvcConfig implements WebMvcConfigurer {
@Autowired
private MyInterceptor myInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor)//注册拦截器
.addPathPatterns("/**")//拦截的路径规则
.excludePathPatterns("/html/jie.html");//不拦截的路径规则
}
}