当前位置:   article > 正文

SpringBoot--过滤器(Filter)--使用/教程/实例_spring boot filter

spring boot filter

原文网址:SpringBoot--过滤器(Filter)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客

简介 

说明

本文用示例介绍SpringBoot(SpringMVC)中的过滤器的用法。

Filter可以有多个。一个filter执行完之后会执行另外一个。

过滤器的使用场景

  1. 控制用户访问权限
  2. 记录日志
  3. 图像转换
  4. 数据压缩
  5. 加密
  6. Token校验
  7. 媒体类型过滤

实例1:单过滤器

两种方式注册filter(两种方式的本质都是一样的,都是去FilterRegistrationBean注册自定义Filter ):
1、使用Spring Boot提供的FilterRegistrationBean注册Filter
2、使用原生servlet注解定义Filter。缺点:无法指定过滤器顺序

注册方式1:FilterRegistrationBean

定义Filter 

  1. package com.example.filter;
  2. import javax.servlet.*;
  3. import javax.servlet.http.HttpServletRequest;
  4. import java.io.IOException;
  5. public class MyFilter implements Filter {
  6. @Override
  7. public void init(javax.servlet.FilterConfig filterConfig) throws ServletException {
  8. System.out.println("MyFilter.init");
  9. System.out.println(" 过滤器名:" + filterConfig.getFilterName());
  10. }
  11. @Override
  12. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  13. // do something 处理request 或response
  14. System.out.println("MyFilter.doFilter");
  15. if (servletRequest instanceof HttpServletRequest) {
  16. System.out.println(" URL:" + ((HttpServletRequest)servletRequest).getRequestURL());
  17. }
  18. // 调用filter链中的下一个filter
  19. filterChain.doFilter(servletRequest,servletResponse);
  20. }
  21. @Override
  22. public void destroy() {
  23. System.out.println("MyFilter.destroy");
  24. }
  25. }

注册自定义Filter 

  1. package com.example.filter;
  2. import org.springframework.boot.web.servlet.FilterRegistrationBean;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. @Configuration
  6. public class FilterConfig {
  7. @Bean
  8. public FilterRegistrationBean registrationBean() {
  9. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter());
  10. filterRegistrationBean.addUrlPatterns("/*");
  11. return filterRegistrationBean;
  12. }
  13. }

上边是部分内容,为便于维护,全文已迁移到此网址:SpringBoot-过滤器(Filter)-使用/教程/实例 - 自学精灵

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/921890
推荐阅读
相关标签
  

闽ICP备14008679号