代码如下,希望大家可以互相交流
1、配置类
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
//实现拦截器 要拦截的路径以及不拦截的路径
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册自定义拦截器,添加拦截路径和排除拦截路径
registry.addInterceptor(new InterceptorConfig()).addPathPatterns("/**").excludePathPatterns("/loginPage","/login");
}
addPathPatterns//这个是添加拦截路径,excludePathPatterns这个是排除拦截的路径多个路径中间用逗号隔开,
2 重写HandlerInterceptor类
public class InterceptorConfig implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(InterceptorConfig.class);
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o) throws Exception {
log.info("---------------------开始进入请求地址拦截----------------------------");
HttpSession session = httpServletRequest.getSession();
Object user = session.getAttribute("user");
if (user == null) {
try {
response.sendRedirect("/loginPage");
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}