SpringBoot(五)拦截器
上回记录了Session的方法,这回要记录一下拦截。因为要做权限功能,只有登录才可以查看之类的。
这个比较简单,两步走。
1. HandlerInterceptor
这个就是实现逻辑,设置拦截规则。
这里就是实现HandlerInterceptor接口,然后请求前,中,后进行拦截。
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object a = request.getSession().getAttribute("a");
if (a == null) {
System.out.println("null");
return false;
} else {
System.out.println("not null");
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//...
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//...
}
}
2. WebMvcConfigurer
这个就是注册拦截,设置要拦截的路径、请求。
注意,只对@Controller的生效,因此一定要加上。
@Controller
public class xxx implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/*").excludePathPatterns("/s1");
}
}
至此,我觉得前面的逻辑基本上都OK了,剩下的就是关于数据库的东西了,我就可以做我的毕业设计了。