HandlerInterceptorAdapter
继承HandlerInterceptorAdapter该类配置适配器从而实现拦截,可该类已经过时了(HandlerInterceptorAdapter )。
这时我们需要来实现一个接口,来达到继承HandlerInterceptorAdapter类相同的效果,实现HandlerInterceptor接口。
public class loginInterceptor implements HandlerInterceptor {
@Override
//preHandle:在方法调用前使用
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
//判断用户是否登录,未登录重定向到登录页面
if (request.getSession().getAttribute("user") == null){
response.sendRedirect("/admin");
return false;
}
return true;
}
}
WebMvcConfigurerAdapter
当上面的适配器配置好,我们就需要加载适配器来实现拦截。但是通过继承WebMvcConfigurerAdapter类来进行配置已经过时了。(WebMvcConfigurerAdapter )
当然同样也可以通过实现一个接口来进行配置,实现WebMvcConfigurer接口。
@Configuration
public class myConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//加载登录适配器
registry.addInterceptor(new loginInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/admin")
.excludePathPatterns("/admin/login");
}
}
希望上面内容能够帮助到你们!