package com.anole.manager.config.filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.anole.db.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
/**
* @author:manbu
* @data 2019/1/14- 18:53
* @TODO:
* @console:
*/
@Component
@Slf4j
public class WebAppConfig extends HandlerInterceptorAdapter {
// 拦截器具体实行代码块 在这里书写拦截器的具体实现功能 以及逻辑处理 return false 和return true 是否 拦截当前请求
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o)
throws Exception {
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 {
}
}
拦截器过滤配置类
@Configuration 声明这是个配置文件
@Component 实例化对象到 Spring的容器中
@Component
@Configuration
public class InterceptorConfiguration implements WebMvcConfigurer {
@Autowired
private WebAppConfig webAppConfig;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册拦截器
InterceptorRegistration ir = registry.addInterceptor(webAppConfig);
// 配置拦截的路径
// /代表项目根目录
ir.addPathPatterns("/**");
// 配置不拦截的路径
// 这里可以配置你不需要拦截的路径 ** 代表通配 这里可以是静态资源访问地址
//也可以是 Controller 方法需要访问的地址
// 一般 静态资源 和登陆 等接口是需要放过的 实际根据业务场景区分
ir.excludePathPatterns("/test/get");
ir.excludePathPatterns("/static/**/**.**");
}
}
资料延伸
拦截器实现日期的转换
url : https://blog.csdn.net/HuHui_/article/details/84782263
拦截器实现登陆
https://blog.csdn.net/h_k10086/article/details/80306384