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容器,在实现上,基于函数回调,它可以对几乎所有请求 ...
 
随机推荐
- mysql访问视图提示:找不到视图
			
原因: 1.不存在 2.视图区分大小写(有的不区分) 3.权限问题
 - Linux - 用户权限相关命令
			
用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...
 - P和C
			
import tensorflow as tf import numpy as np import math import keras from keras.layers import Conv2D, ...
 - wpf  给listview的数据源转换为集合
			
目的是点击某个按钮把一条数据从 itemssource中移除 private void delete_Click_1(object sender, RoutedEventArgs e) { DtsIn ...
 - CVTE C/C++开发工程师笔试题(二)
			
问题描述:打印重复元素 给定一个数组,内容可能包含1到N的整数,N最大为40000,数组可能含有重复的值,且N的取值不定.若只剩余5KB内存可用,请设计函数尽可能快的答应数组中所有重复的元素. voi ...
 - 大数据学习(一)-------- HDFS
			
需要精通java开发,有一定linux基础. 1.简介 大数据就是对海量数据进行数据挖掘. 已经有了很多框架方便使用,常用的有hadoop,storm,spark,flink等,辅助框架hive,ka ...
 - C#导入c++ dll报找不到dll文件 masm32调用c++类库
			
最近需要在C#下调用一个c++ dll库,不管怎样dllimport就是报错找不到该dll文件,路径.函数名称.参数.dllimport参数逐个检查确认无误也无济于事,无奈想用其他语言调用试试,由于是 ...
 - CMakeLists 的使用,大型工程使用cmake 的构件过程
			
CMakeLists 的使用,大型工程使用cmake 的构件过程 CMakeLists_1 PROJECT(hello_2) cmake_minimum_required(VERSION 2.8) # ...
 - JavaSE基础知识(5)—面向对象(5.7 final关键字)
			
一.说明 final属于一种修饰符,可以用于修饰类和属性.方法.局部变量 二.特点 1.修饰类 该类不能被继承,如String.Integer等 2.修饰方法 该方法不能被重写 3.修饰变量(属性和局 ...
 - mysql保存乱码(C#)
			
解决办法只有一个就是在配置文件中强制指定编码格式:<add name="TSDBEntities" connectionString="metadata=res:/ ...