[SpringBoot2]拦截器
拦截器
- 1.编写一个拦截器实现HandlerInterceptor接口
- 2.拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors)
- 3.指定拦截规则[如果是拦截所有,静态资源也会被拦截]
1、HandlerInterceptor 接口
/*** 登录检查* 1、配置好拦截器要拦截哪些请求* 2、把这些配置放在容器中*/
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {/*** 目标方法执行之前* @param request* @param response* @param handler* @return* @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String requestURI = request.getRequestURI();log.info("preHandle拦截的请求路径是{}",requestURI);//登录检查逻辑HttpSession session = request.getSession();Object loginUser = session.getAttribute("loginUser");if(loginUser != null){//放行return true;}//拦截住。未登录。跳转到登录页request.setAttribute("msg","请先登录");
// re.sendRedirect("/");request.getRequestDispatcher("/").forward(request,response);return false;}/*** 目标方法执行完成以后* @param request* @param response* @param handler* @param modelAndView* @throws Exception*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {log.info("postHandle执行{}",modelAndView);}/*** 页面渲染以后* @param request* @param response* @param handler* @param ex* @throws Exception*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {log.info("afterCompletion执行异常{}",ex);}
}
2、配置拦截器
/*** 1、编写一个拦截器实现HandlerInterceptor接口* 2、拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors)* 3、指定拦截规则【如果是拦截所有,静态资源也会被拦截】*/
@Configuration
public class AdminWebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**") //所有请求都被拦截包括静态资源.excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**"); //放行的请求}
}
test
- 执行顺序
[SpringBoot2]拦截器相关推荐
- Springboot2拦截器与文件上传
拦截器-登录检查与静态资源放行 1.编写一个拦截器实现HandlerInterceptor接口 2.拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors()) 3. ...
- SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
一.拦截器简介 1.拦截器定义 拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. 拦截器主要用来按照指定规则拒绝请求. 2.拦截器中应用 Token令牌 ...
- springboot2.0版本后配置拦截器会导致静态资源被拦截
转载:https://blog.csdn.net/wangfuxu14/article/details/80670648 springboot2.0版本后配置拦截器会导致静态资源被拦截 解决办法: 分 ...
- springboot-2.2.5中自定义拦截器、静态资源映射、视图控制器和其他功能
在spring-boot-2.2.5中对MVC自动配置类进行的更改,之前的WebMvcConfigurerAdapter类声明为过时的,现在进行自定义扩展需要实现WebMvcConfigurer类重写 ...
- SpringBoot2.x 中配置拦截器
拦截器 拦截器介绍 拦截器开发 开发拦截器 MyInterceptor 开发控制器 HelloController 配置拦截器 InterceptorConfig 运行 SpringBoot 知识点目 ...
- SpringBoot2整合Mybatis拦截器,拦截mapper接口的某个方法
需求: 在执行某个动态sql时,where 子句,希望通过用户进行自定义查询条件,比如用户可以传入 "id > 100011 and name = '张三'" 的多条件表达式 ...
- springboot2.0+拦截器后 , 静态资源被拦截问题
1.先弄懂第一件事: springboot默认的静态资源访问路径是:META-INF/resources > resources > static > public (访问优先级也是 ...
- 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...
- springboot _配置过滤器、拦截器、使用原生servlet
配置过滤器.拦截器.使用原生servlet 过滤器和拦截器的根本区别 过滤器是servlet规范规定的,只能用于web程序中,而拦截器是在spring容器中,它不依赖servlet容器. 拦截器属于S ...
最新文章
- 在python中使用关键字define定义函数_python自定义函数def的应用详解
- Missing artifact com.sun:tools:jar:1.5.0
- mongodb 学习笔记 2 --- 修改器
- hadoop的idea连接配置_idea远程连接hadoop(macOS)
- rizomuv缩放排布_RizomUV
- C++根据输入日期YYYY-MM-DD判断是否星期几
- alternatives命令用法
- java并发之Future与Callable使用
- 拓端tecdat|R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
- 在android系统中制作系统签名jks
- Linux递归统计当前目录下普通文件的数量
- 播放最近的人人影视mp4视频出现了所有文字显示不正常的现象,及其解决方法
- 2020德勤面试开始了吗_刚刚去德勤面试,我只说了三个字就被录取了!
- COPYPASTE: AN AUGMENTATION METHOD FOR SPEECH EMOTION RECOGNITION -论文阅读
- 武汉农商行 商转公所需材料
- 基因编辑最新研究进展(2022年4月)
- 大屏antdesign走马灯轮播加图形渲染
- MySQL命令简单应用
- java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
- 做自媒体没素材怎么办?