SpringBoot自定义Filter
SpringBoot自定义Filter
SpringBoot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,当然我们可以自定
义Filter。
自定义Filter需要两个步骤:
- 实现Filter【javax.servlet.Filter】接口,实现Filter方法
- 添加 @Configuration 注解,将自定义Filter加入过滤链
【过滤打印请求URL】实例代码如下:
package xatu.zsl.Filter;
import org.apache.catalina.filters.RemoteIpFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;
import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;
/*** Created by zsl on 2017/9/3.*/@Configurationpublic class ConfigurationFilter {@Beanpublic RemoteIpFilter remoteIpFilter() {return new RemoteIpFilter();}
@Beanpublic FilterRegistrationBean testFilterRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();registration.setFilter(new MyFilter());//添加过滤器registration.addUrlPatterns("/*");//设置过滤路径,/*所有路径registration.addInitParameter("name", "alue");//添加默认参数registration.setName("MyFilter");//设置优先级registration.setOrder(1);//设置优先级return registration;}
public class MyFilter implements Filter {@Overridepublic void destroy() {}
@Overridepublic void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChainfilterChain)
throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) srequest;//打印请求UrlSystem.out.println("this is MyFilter,url :" + request.getRequestURI());filterChain.doFilter(srequest, sresponse);}
@Overridepublic void init(FilterConfig arg0) throws ServletException {}}
}
有人好奇public FilterRegistrationBean testFilterRegistration() 这个方法返回的FilterRegistrationBean如何在Coltroller中获取?,(●’◡’●),我很好奇,,于是乎!搞了点事情
在Controller中获取刚才ConfigurationFilter中【registration.addInitParameter(“name”, “alue”);//添加默认参数】这个设置的参数。
在Controller中加入如下代码就能获取(刚才【testFilterRegistration()】方法加了注解@Bean,所以Spring容器中会有一个实例, @Autowired就理所应当的注入进来了。)
@AutowiredFilterRegistrationBean registration;
@GetMapping("/getname")public Map<String, String> getName() {Map<String, String> initParameters = registration.getInitParameters();return initParameters;}
SpringBoot自定义Filter相关推荐
- springboot 自定义filter
项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等 解答:两个步骤 1实现Filter接口,实现Filter方法,代码如下 public class MyFilter i ...
- SpringBoot自定义Filter的三种方式
方式一 : 使用OncePerRequestFilter OncePerRequestFilter该过滤器,是spring提供的.默认情况下,每一个请求都会经过该过滤器 方式二: @WebFilter ...
- 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...
- 【SpringBoot】之自定义 Filter 过滤器
目录 一.Filter 介绍 二.Filter 的拦截过程 三.自定义 Filter 一.Filter 介绍 Filter 过滤器主要用来过滤用户的请求,允许用户对请求进行前置处理和后置处理,比如实现 ...
- java filter注入,Spring-boot中Filter注入bean
Spring-boot中Filter注入bean 在spring中使用Filter的方式不用再多说,但是通常情况下我们在使用filter中都可能会注入部分配置的类或者部分具有特殊功能的业务类. 在这种 ...
- SpringBoot之Filter过滤器的实现及排序问题
相关文章: SpringBoot 之AOP切面的使用 SpringBoot之Listener注册到Spring容器中的多种方法 SpringBoot之Interceptor拦截器注入使用 Spring ...
- shiro学习系列:shiro自定义filter过滤器
shiro学习系列:shiro自定义filter过滤器 自定义JwtFilter的hierarchy(层次体系) 上代码 package com.finn.springboot.common.conf ...
- SpringBoot 自定义全局异常处理器
SpringBoot自定义全局异常处理器 一.maven依赖 二.GlobalExceptionHandler.java 三.ResponseStandard.java 四.logback.xml 五 ...
- SpringBoot的filter过滤器(内含源代码)
SpringBoot的filter过滤器(内含源代码) 源代码下载地址:https://download.csdn.net/download/weixin_46411355/87399893 目录 S ...
最新文章
- 【C#实践】详解三层转七层:登录
- 如何高效维持网络长连接
- 获取计算机最大磁盘,Qt获取电脑磁盘容量(示例代码)
- 计算机科学与技术做什么实验,计算机科学与技术专业实验教学大纲
- WebHubBot 网络爬虫
- saliency filters精读之permutohedral lattice
- python希尔伯特变换_Hilbert变换提取信号特征的Python实现
- 11年电赛综合测评——单运放三角波发生器
- 微信怎样授权群相册服务器,怎么创建微信群相册?微信群相册设置与创建全攻略(图文)...
- Django rest framework之限流Throttling、内置过滤功能及第三方过滤功能及分页Pagination
- 《Total Commander:万能文件管理器》——第7.3节.总结与作业
- java工程师简历的潜规则你知道吗?
- 阿里云云原生数据湖体系全解读——元原生数据湖体系
- ION to SMMU
- redis分布式锁的原子保证
- 软件设计师:计算机系统
- 【面试经典】求解金矿问题(动态规划初级)
- 成功解决tensorflow.python.framework.errors_impl.InvalidArgumentError: slice index 1 of dimension 0 out o
- Java反序列化json内存溢出_fastjson反序列化使用不当致使内存泄露
- (UPCOJ暑期训练)Tally Counters
热门文章
- gearman mysql 扩展_Gearman的安装和使用
- Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总(转载)
- 【HANA系列】SAP HANA XS创建XSJOB后台执行
- 怎么在activity里面操作listView的item里的组件的点击事件
- LeetCode:Balanced Binary Tree
- PHP操作Mongodb API 及使用类 封装好的MongoDB操作类
- Android之使用VideoView组件播放一个简单的视频
- Mysql(二)——简单查询及示例
- 计算机显示休眠状态进不去,解决方法:关闭计算机,或使其进入睡眠或休眠状态...
- flask简单登录注册