在学习spring的过程中,我了解了拦截器的实现,觉得有必要记录一下相关的实现方法,留作记录,以便以后自己记忆
首先创建拦截器,新建类BackInterceptor实现HandlerInterceptor接口,重写preHandler方法
public class BackInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,Object Handler)throws Exception{
/** 具体拦截方法 **/
}
}
再新建个MyWebMvcConfigurerAdapter 实现WebMvcConfigurer,重写addInterceptors方法
public MyWebMvcConfigurerAdapter implements WebMvcConfigurer{
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new BackInterceptor()).addPathPatterns("/admin/**").excludePathPatterns("/tologin");
addInterceptors(registry);
}
}
其中,addPathPatterns("/admin/**")是拦截地址中与admin有关的全部页面,并跳转至excludePathPatterns("/tologin")地址的页面。
查阅相关资料后得知拦截器中的方法运行顺序是
preHandle -> Controller -> postHandle -> afterCompletion
只有当preHandle返回true时才会继续运行