SpringBoot2.x 中配置拦截器
拦截器
- 拦截器介绍
- 拦截器开发
- 开发拦截器 MyInterceptor
- 开发控制器 HelloController
- 配置拦截器 InterceptorConfig
- 运行
SpringBoot 知识点目录: SpringBoot 核心知识点整理!
拦截器介绍
拦截器的作用:通过拦截执行中通用的代码逻辑,来减少控制器中的代码冗余。
拦截器的特点:
- 只能拦截控制器的相关请求,不能拦截静态资源和页面的相关请求(css、img)
- 请求发送经过拦截器响应回来同样经过拦截器
- 拦截器中断用户的请求
- 拦截器可以针对性拦截某些控制器请求
拦截器开发
开发一个自己的拦截器类,要求实现 HandlerInterceptor
;
preHandler
在controller
执行之前,进行拦截,通过返回值判断是否放行。
返回值true
表示放行,然后去执行controller
中的代码。
返回值false
表示拦截,不再继续执行后续代码。postHandler
请求过程中处理controller
执行之后的操作。afterCompletion
最终处理。
开发拦截器 MyInterceptor
public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("---------1----------");return true; // true代表放行, false表示拦截住}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("---------3----------");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("---------4----------");}
}
开发控制器 HelloController
@RestController
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/hello")public String hello() {System.out.println("---------2----------");return "hello";}@RequestMapping("world")public String world() {System.out.println("-------world--------");return "world";}
}
配置拦截器 InterceptorConfig
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()) // 添加拦截器.addPathPatterns("/hello/**") // 添加l拦截的请求路径.excludePathPatterns("/hello/world"); // 添加排除哪些请求路径不经过拦截器}
}
运行
首先在 preHandle
中进行拦截,上述代码为 true
表示放行,则开始执行 HelloController
中的代码,执行完控制器之后再去执行 postHandle
中的代码,整个过程结束以后再执行 afterCompletion
中的代码。
---------1----------
---------2----------
---------3----------
---------4----------
SpringBoot2.x 中配置拦截器相关推荐
- SpringBoot中配置拦截器时,跨域失效
SpringBoot中配置拦截器时,跨域失效 前后段分离的项目,配置了跨域后,访问正常,但是配置了拦截器以后,有的访问正常,有的出现跨域问题,发现出现跨域问题的都是拦截器里面没有放行的请求. @Con ...
- Springmvc中的拦截器interceptor及与过滤器filter的区别
一.Springmvc中的拦截器概述及与过滤器filter的区别 1).Springmvc中的拦截器interceptor用于对控制器controller进行预处理和后处理的技术; 2).可以定义拦截 ...
- Spring中的拦截器的作用
Spring中的拦截器的作用 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 用户可以自己定义一些拦截器来实现特定的功能. 谈到拦截器 ...
- springboot2.0版本后配置拦截器会导致静态资源被拦截
转载:https://blog.csdn.net/wangfuxu14/article/details/80670648 springboot2.0版本后配置拦截器会导致静态资源被拦截 解决办法: 分 ...
- springboot配置拦截器,在拦截器中获取@RequestBody注解参数和post请求参数以及get请求参数
1.配置拦截器 package com.jy.gxw.config.interceptor;import org.springframework.beans.factory.annotation.Au ...
- SpringMVC中的拦截器
SpringMVC中的拦截器 拦截器的作用 Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 用户可以自己定义一些拦截器来实现 ...
- Struts2中的拦截器与过滤器学习
拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法 ,比如动态代理就是拦截器的简单实现,过滤器是在java web中,你传入的request,res ...
- vue面向切面_vue:在路由跳转中使用拦截器
1:首先在路由对象中的某一个具体的路由对象加这样一个属性 meta: { requireAuth:true } 2:然后在main.js中添加这段代码 router.beforeEach((to, ...
- 【springboot中使用拦截器】
1.拦截器原理 1.定义拦截器: 2.配置拦截器 3.解决静态资源被拦截 2.拦截器使用实例 2.1判断用户有没有登录 2.2取消拦截操作 1.拦截器原理 拦截器的原理很简单,是AOP 的一种实现,专 ...
最新文章
- 网络安装Centos x64 6.10
- luogu3810 【模板】三维偏序(陌上花开)
- SAP Cloud SDK for JavaScript 概述
- html div初始隐藏点击可见_3种CSS3移动手机隐藏菜单UI界面代码解析/附源码下载...
- php抓取动态数据,php+ajax实现无刷新动态加载数据技术
- 无法将类型int隐式转换为string_Scala implicit 隐式转换安全驾驶指南
- 将列表打印为表格数据
- 有必要买吗_婴儿床有必要买吗 婴儿床有用吗
- Java排序算法——猴子排序(Bogo Sort)
- 自媒体采集平台免费,免费的自媒体采集平台
- 通过nginx实现线上页面访问本地接口
- 天水师范计算机与科学怎么样,甘肃大学分析:陇东学院和天水师范哪所师范类本科好?...
- IP-guard项目实施前情况调查表
- VMware 虚拟机安装Linux(Ubuntu)系统教程
- 解决Chrome和Chrome内核edge浏览器在启用硬件加速后颜色异常的问题
- 分布式事务之BASE理论
- 江西省九江市瑞昌市高考成绩查询2021,2021九江重点高中学校排名榜
- Codeforces Round #262 (Div. 2)-A,B,C,D
- 蓝桥杯历届试题-数字游戏
- html怎么把页面和图片居中,css怎么让图片居中?