过滤器(Filter)的注册方法和 Servlet 一样,有两种方式:代码注册或者注解注册

1.代码注册方式

通过代码方式注入过滤器

@Bean
    public FilterRegistrationBean indexFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean(new IndexFilter());
        registration.addUrlPatterns("/");
        return registration;
    }

IndexFilter.Java类:

package com.example.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class IndexFilter implements Filter{

@Override
    public void destroy() {
        System.out.println("filter destroy method");
        
    }

@Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
            throws IOException, ServletException {
        System.out.println("filter doFilter method");
        
    }

@Override
    public void init(FilterConfig arg0) throws ServletException {
        System.out.println("filter init method");
        
    }

}


2.注解方式

通过注解方式注入过滤器

IndexFilter2.java类

package com.example.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter(urlPatterns = "/*", filterName = "indexFilter2")
public class IndexFilter2 implements Filter{

@Override
    public void destroy() {
        System.out.println("filter2 destroy method");
        
    }

@Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
            throws IOException, ServletException {
        System.out.println("filter2 doFilter method");
        
    }

@Override
    public void init(FilterConfig arg0) throws ServletException {
        System.out.println("filter2 init method");
        
    }

}

把注解加到入口处启动即可

@SpringBootApplication
@ServletComponentScan
public class SpringBootSimpleApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(SpringBootSimpleApplication.class, args);
    }
}

转载于:https://www.cnblogs.com/web424/p/6755957.html

Spring Boot的filter简单使用相关推荐

  1. Spring Boot持久化的简单实现

    本篇主要讲解的是Spring Data Jpa 前提准备:JDK1.8,Mysql5.7.18 主要maven依赖的包: spring-boot-starter-jdbc mysql-connecto ...

  2. 使用React和Spring Boot构建一个简单的CRUD应用

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Reac ...

  3. 使用spring boot实现一个简单的项目——⽤户管理功能

    Spring Boot之用户管理功能 趁着这几天有时间跟大家分享一个使用spring boot实现的一个简单的项目,也开启了我第一次在CSDN上面写博客,相信这是个新的篇章.好了,废话不多说,直接上真 ...

  4. 一个项目有两个pom_实现一个Spring Boot Starter超简单,读 Starter 源码也不在话下...

    Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置.不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置 ...

  5. 阿里微服务专家自己手写Spring Boot 实现一个简单的自动配置模块

    为了更好的理解 Spring Boot 的 自动配置和工作原理,我们自己来实现一个简单的自动配置模块. 假设,现在项目需要一个功能,需要自动记录项目发布者的相关信息,我们如何通过 Spring Boo ...

  6. spring boot 配置Filter过滤器

    Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter 首先要准备一个实现了Filter的接口的类 SessionFi ...

  7. 实现一个 Spring Boot Starter 原来如此简单,读 Starter 源码也不在话下

    我是风筝,公众号「古时的风筝」,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者.现已转行程序员鼓励师 Spring Cloud 系列文章已经完成,可以 ...

  8. spring boot 一个极简单的 demo 示例

    1. 描述 一个spring boot 的简单demo示例. 环境: IDE(idea):2021.3 JDK:1.8 maven:3.8.4 spring boot:2.5.6 2. 结果 接口返回 ...

  9. 课表排班java_初学OptaPlanner-02- 基于Spring Boot实现一个简单课程表排班的实例

    Spring Boot Java quick start 01. 排班目标 作出一个简单的课程表timetable,示例如下: 时间表的类图 02. Opta的常用注解说明, 关键实体类说明 @Pla ...

  10. Spring Boot + Mybatis 实现简单的实验室预约微信小程序

    本微信小程序主要由Mysql,Eclipse和微信开发者工具共同完成,其主要功能有分角色登录,新闻页浏览及推送,实验室条件筛选查询,实验室预约,查看历史预约记录或取消当前预约以及个人信息修改和教师用户 ...

最新文章

  1. Anaconda入门使用指南(二)
  2. python编译成class_python class
  3. Linux求100内的质数,用SQL计算100以内的质数
  4. 各种语音编码方法,所需要的带宽
  5. 计算机房等电位连接,《计算机房屏蔽及等电位防护措施原稿2021版》
  6. 热门的XDR到底是一类什么样安全产品?
  7. Sonarqube 扫描maven项目
  8. fastreport 打印有 demo version字样_用户增长留存的数字化管理实操, 11大行业demo重构你的运营方法论...
  9. 【SQL语法基础】数据过滤:SQL数据过滤都有哪些方法?
  10. 2016中国高校计算机大赛——大数据挑战赛极客奖:COM团队
  11. 【JavaMap接口】特点实现类HashMap常用方法
  12. 简练网软考知识点整理-项目整体绩效测量基准
  13. Android 使用MediaPlayer播放网络音频
  14. 400KN液压绞车液压系统设计 全套毕业设计(开题报告+任务书+说明书+外文翻译+CAD图纸)
  15. (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  16. ISE头条号海报生成器
  17. 常见车规级芯片汇总 ---高通820A、高通8155P、高通8195 和 特斯拉HW3.0芯片
  18. 软件工程直招士官生_如何看待今年首次面向普通高校毕业生直招士官?是毕业生的一个好选择吗?...
  19. 中原消费金融2020年业绩出炉
  20. android图片轮播+点击跳转广告页面

热门文章

  1. python验证码识别——前处理
  2. AGP Aperture Size UMA Frame Buffer Size
  3. pymongo基本方法使用笔记
  4. matplotlib画图一行三个图
  5. 论文笔记:Deep neural networks for YouTube recommendations
  6. Python动态数据展示
  7. nlp基础—4.搜索引擎中关键技术讲解
  8. python—PIL使用
  9. 遗传算法初学-旅行商问题
  10. RabbitMQ学习——生产者与消费者入门例子