SpringBoot 2 快速整合 Filter过程解析
概述
SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter 。但是我们可以通过 JavaConfig(@Configuration +@Bean)方式进行配置。通过FilterRegistrationBean 将自定义 Filter 添加到 SpringBoot 的过滤链中。
实战操作
实战操作通过定义一个拦截所有访问项目的URL的 Filter来进行演示的。
首先定义一个统一访问 URL 拦截的 Filter。代码如下:
public class UrlFilter implements Filter { private Logger log = LoggerFactory.getLogger(UrlFilter.class); @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; String requestURI = httpServletRequest.getRequestURI(); StringBuffer requestURL = httpServletRequest.getRequestURL(); log.info("requestURI:" +requestURI+" "+"requestURL:"+requestURL); chain.doFilter(httpServletRequest, response); } }
通过 javaConfig方式配置 SpringBoot 过滤链类 FilterRegistrationBean,具体代码如下:
@Configuration public class FilterConfig { @Bean public FilterRegistrationBean filterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new UrlFilter()); List<String> urlList = new ArrayList<String>(); urlList.add("/*"); registration.setUrlPatterns(urlList); registration.setName("UrlFilter"); registration.setOrder(1); return registration; } }
FilterRegistrationBean 中方法介绍:
- registration.setFilter(Filter filter):设置我们自定义Filter对象。
- registration.setUrlPatterns(Collection urlPatterns):设置自定义Filter需要拦截的URL的集合。
- registration.setName(String name): 设置自定义Filter名称。
- registration.setOrder(int order):设置自定义Filter拦截顺序。
测试
启动 SpirngBoot 项目并通过游览器访问我们的项目下的 index.html。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring Boot的filter(过滤器)简单使用实例详解
过滤器(Filter)的注册方法和 Servlet 一样,有两种方式:代码注册或者注解注册 1.代码注册方式 通过代码方式注入过滤器 @Bean public FilterRegistrationBean indexFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(new IndexFilter()); registration.addUrlPatterns("/&quo
-
详解Spring Boot实战之Filter实现使用JWT进行接口认证
本文介绍了spring Boot实战之Filter实现使用JWT进行接口认证,分享给大家 jwt(json web token) 用户发送按照约定,向服务端发送 Header.Payload 和 Signature,并包含认证信息(密码),验证通过后服务端返回一个token,之后用户使用该token作为登录凭证,适合于移动端和api jwt使用流程 本文示例接上面几篇文章中的代码进行编写,请阅读本文的同时可以参考前面几篇文章 1.添加依赖库jjwt,本文中构造jwt及解析jwt都使用了jjwt库
-
springboot中filter的用法详解
一.在spring的应用中我们存在两种过滤的用法,一种是拦截器.另外一种当然是过滤器.我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别. 二.filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter
-
spring boot 配置Filter过滤器的方法
Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter 首先要准备一个实现了Filter的接口的类 SessionFilter: import org.slf4j.LoggerFactory; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRespo
-
spring-boot实现增加自定义filter(新)
前言 传统的javaEE增加Filter是在web.xml中配置,如以下代码: <filter> <filter-name>TestFilter</filter-name> <filter-class>com.cppba.filter.TestFilter</filter-class> </filter> <filter-mapping> <filter-name>TestFilter</filter-n
-
JSP spring boot / cloud 使用filter防止XSS
JSP spring boot / cloud 使用filter防止XSS 一.前言 XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 二.思路 基于filter拦截,将特殊字符替换为html转意字符 (如
-
springboot使用filter获取自定义请求头的实现代码
有个钱包项目,本来用的是微服务这一套,后来感觉没必要,重构成了简单的springboot项目,但是token校验重构完之后出问题了,之前写filter走的是springgateway,基于GatewayFilter实现,重构了之后基于filter,然后当请求进入过滤器的时候,发现不能获取到请求的自定义请求头. String token = request.getHeader("token"); // null String id = request.getHeader("id
-
SpringBoot中使用Filter和Interceptor的示例代码
一.Filter(过滤器) Filter接口定义在javax.servlet包中,是Servlet规范定义的,作用于Request/Response前后,被Servlet容器调用,当Filter被Sring管理后可以使用Spring容器资源. 实现一个Filter 自定义的过滤器需要实现javax.servlet.Filter,Filter接口中有三个方法: init(FilterConfig filterConfig):过滤器初始化的被调用. doFilter(ServletRequest s
-
SpringBoot 2 快速整合 Filter过程解析
概述 SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter .但是我们可以通过 JavaConfig(@Configuration +@Bean)方式进行配置.通过FilterRegistrationBean 将自定义 Filter 添加到 SpringBoot 的过滤链中. 实战操作 实战操作通过定义一个拦截所有访问项目的URL的 Filter来进行演示的. 首先定义一个统一访问 URL 拦截的 Filter.代码如下: public
-
Springboot工程中使用filter过程解析
一.什么是filter 过滤器实际上就是用来对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理 通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 . filter可以在请求到达servlet前或者请求完成响应后进行后续的处理. 二.在springboot工程中使用filter 创建一个filter,并使用注解配置该filter的名称和拦截路径等属性 @WebFilter(filterName = "AFilter",urlPat
-
Spring Boot 2.X快速整合jpa过程解析
一.JPA介绍 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. SpringData是Spring的一个子项目.用于简化数据库访问,支持NoSQL和关系数据存储,其主要目标是使数据库的访问变得方便快捷. Spring Data JPA致力于减少数据访问层(DAO)的开发量,开发者唯一要做的就只是声明持久层的接口,其他都交给Spring Data JPA 来帮你完成!
-
SpringBoot整合FastJson过程解析
这篇文章主要介绍了SpringBoot整合FastJson过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.Maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version> </dependency&
-
springboot整合JPA过程解析
这篇文章主要介绍了springboot整合JPA过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 接下来具体看看是怎么弄的. 1.新建一个springboot项目,选择web.data jdbc.data jpa.mysql driver. 2.建立以下目录及结构: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&
-
Spring Cloud Sleuth整合zipkin过程解析
这篇文章主要介绍了Spring Cloud Sleuth整合zipkin过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringCloud Sleuth 简介 Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案. Spring Cloud Sleuth借鉴了Dapper的术语. Span:基本的工作单元.Span包括一个64位的唯一ID,一个64位trace码,描述信息,时间戳事件,key-va
-
配置springboot项目使用外部tomcat过程解析
这篇文章主要介绍了配置springboot项目使用外部tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在pom文件中添加依赖 <!--使用自带的tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifac
-
SpringBoot基本web开发demo过程解析
这篇文章主要介绍了SpringBoot基本web开发demo过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.在创建的springboot项目中的pom.xml中导入Lombok的依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18
-
Spring Boot 整合 Druid过程解析
这篇文章主要介绍了Spring Boot 整合 Druid过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概述 Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和 SQL 解析器组成.该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证.统计 SQL 信息.SQL 性能收集.SQL 注入检查.SQL 翻译等,程序员可以通过定制来实现自己需要的功能. Druid 是
-
Spring boot整合log4j2过程解析
这篇文章主要介绍了Spring boot整合log4j2过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以前整合过log4j2,但是今天再次整合发现都忘记了,而且也没有记下来 1.pom.xml中 (1)把spring-boot-starter-web包下面的spring-boot-starter-logging排除 <dependency> <groupId>org.springframework.boot</gr
随机推荐
- 基于AngularJS实现iOS8自带的计算器
- 查询数据排名情况SQL
- C++中的异常处理机制详解
- 详解Java编程中final,finalize,finally的区别
- iOS开发中使用cocos2d添加触摸事件的方法
- PHP获取ip对应地区和使用网络类型的方法
- 使用一个for循环将N*N的二维数组的所有值置1实现方法
- JSP 开发之Spring Boot 动态创建Bean
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- PHP 分页原理分析,大家可以看看
- 浅谈Lua语句
- 微信小程序 动态绑定事件并实现事件修改样式
- Java中的数组基础知识学习教程
- 由static_cast和dynamic_cast到C++对象占用内存的全面分析
- 详解Python的Django框架中的Cookie相关处理
- 修改Zend引擎实现PHP源码加密的原理及实践
- PHP4之COOKIE支持详解
- 解决tensorflow测试模型时NotFoundError错误的问题
- Flutter banner_view 轮播图的使用及实现代码
- vue实现一拉到底的滑动验证