1 定义拦截器
写一个类,实现HandlerIntecepter接口
并重写需要的方法
preHandler()是在请求执行以前对请求进行逻辑处理,如判断用户是否登录,未登录则跳转登陆页面,登陆了则放行
public class MyIntecepter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if(request.getSession().getAttribute("preUser")==null){
request.setAttribute("msg","没登陆被拦截了");
response.sendRedirect("/");
return false;
}else {
return true;
}
}
}
2 配置拦截器
写一个配置类实现WebMvcConfigurer接口并重写addInterceptors方法
@Configuration
public class MyConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyIntecepter())//注册自己定义好的拦截器
.addPathPatterns("/**")//拦截的路径
.excludePathPatterns("/","/login");//放行的路径,需要写静态资源的路径,但这里没写
}
}
}