springboot的拦截器Interceptor的性质
- Interceptor在springboot2.x版本的快速入门
- 实现HandlerInterceptor的接口,并重载它的三个方法:preHandle、postHandle、afterCompletion。
1 /**
2 * 登陆拦截器
3 * @author HILL
4 *
5 */
6 public class LoginInterceptor implements HandlerInterceptor {
7
8 @Override
9 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
10 throws Exception {
11 return HandlerInterceptor.super.preHandle(request, response, handler);
12 }
13
14 @Override
15 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
16 ModelAndView modelAndView) throws Exception {
17 HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
18 }
19
20 @Override
21 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
22 throws Exception {
23 HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
24 }
25 }实现接口
2.加载过滤器的配置类,并设置过滤路径路径
这里的意思是:添加一个MyInterceptor拦截器,拦截路径为/properties。(注意不要忘记在配置类上加@Configuration注解)
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/properties");
WebMvcConfigurer.super.addInterceptors(registry);
}
}
加载配置
- 拦截器三个方法:preHandle、postHandle、afterCompletion的性质。
- 因为springboot就是类似一个配置好的ssm框架,所以mvc层就是springmvc,所以这里的性质也是一样的。
preHandle:在进入controller之前进行拦截并决定是否放行。
postHandle:在controller处理完请求后,返回视图前执行。当controller发生异常时不执行该方法。
afterCompletion:返回视图后,一般用于资源的回收,因为发生异常该方法也会执行
- Interceptor的拦截性质
- 因为springmvc的入口就是dispatcherServlet,所有操作都是基于这个入口。所以Interceptor只能拦截springmvc中的RequestMapping,并不能拦截Servlet
- 需要拦截servlet时要定义filter进行过滤。
- 多个拦截器是的执行顺序,preHandle是在configure类里先添加先执行。postHandle、afterCompletion则依次按顺序由先进后出的规则执行。
springboot的拦截器Interceptor的性质的更多相关文章
- spring-boot 加入拦截器Interceptor
1.spring boot拦截器默认有 HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationIntercepto ...
- springboot+springmvc拦截器做登录拦截
springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration ...
- Java 中的过滤器Filter 和拦截器 Interceptor
1.先说拦截器 Interceptor 本项目以springboot为例: 新建 InterceptorConfig package com.opendev.mystudy.MyInterceptor ...
- 5-21 拦截器 Interceptor
Spring MVC拦截器 什么是拦截器 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后(还有其它特殊时机)对请求进行处理或加工的特定接口 常见面试题:过滤器和拦截器的 ...
- struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
理解 Interceptor拦截器类似于我们学过的过滤器,是可以在action执行前后执行的代码.是我们做web开发是经常使用的技术,比如权限控制,日志.我们也可以把多个interceptor连在一起 ...
- struts2拦截器interceptor的三种配置方法
1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...
- SpringBoot自定义拦截器实现IP白名单功能
SpringBoot自定义拦截器实现IP白名单功能 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html 首先,相关功能已经上线了,且先让我先 ...
- SSM-SpringMVC-33:SpringMVC中拦截器Interceptor讲解
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 拦截器Interceptor: 对处理方法进行双向的拦截,可以对其做日志记录等 我选择的是实现Handler ...
- 过滤器(Filter)和拦截器(Interceptor)
过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序.它依赖于servlet容器,在实现上,基于函数回调,它可以对几乎所有请求 ...
随机推荐
- QUARTZ系列之二-监听器
Listener 1.是什么: perform actions based on events occurring within the scheduler. 2.分类:a.TriggerListen ...
- npm 命令
npm instal moduleName [-g] :安装模块,有 -g 或 --global 是全局安装 npm install -g cnpm --registry=https://regis ...
- SDL2.0 vs2017环境配置
到SDL的官网下载VC++的Development Libraries. 新建一个项目,进入属性窗口. VC++目录->包含目录加入include所在路径,库目录加入lib\x86所在路径. 链 ...
- CentOS7 下安装GUI图形界面GNOME
在安装Gnome包之前,需要检查一下网络是否有网络(使用ping www.baidu.com) 一.先装X windows,-y表示参数同意所有软件安装操,当出现 Complete!说明这里安装成功了 ...
- angular $digest 运行10次货10次以上会抛出异常
今天在做项目时,遇到一个问题,红圈处输入其他数字(n多次)也不会报异常,但是有一种特例,即0,1,0,1,0,1这种顺序输入时,输入第13次时,页面计算结果(蓝色圆圈)不会更新,困扰了1天多这个问题, ...
- 分析easyswoole3.0源码,体验es3(三)
demo在手,总得去试试看效果吧.我们先把默认的服务改成webserver,并且添加数据库的配置. 建立数据库,github里面有相关内容 CREATE TABLE `user_list` ( `us ...
- mongodb的配置文件详解()
官方地址 https://docs.mongodb.com/manual/reference/configuration-options/#configuration-file 以下页面描述了Mon ...
- Rsync未授权访问漏洞的修复
转自:https://www.cnblogs.com/KevinGeorge/p/9648028.html 配置文件/etc/rsync.conf解析: motd file -> motd文件位 ...
- Hbase的基本操作(CDH组件可用)
Habse创建一张表: 1,创建一个命名空间NameSpace(命名空间NameSpace指的是一个表的逻辑分组 ,同一分组中的各个表有类似的用途,相当于关系型数据库中的DataBase) ...
- Django使用cropbox包来上传裁剪图片
1.使用cropbox包来上传裁剪图片,可见介绍:https://www.jianshu.com/p/6c269f0b48c0I ImgCrop包包括:css--style.css,js--cropb ...