1. 通过注解扫描完成Filter组件的注册(SpringBoot整合Filter方式一)

1.1. 使用maven构建SpringBoot的名叫spring-boot-filter项目

1.2. pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.bjbs</groupId><artifactId>spring-boot-filter</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.13.RELEASE</version></parent><!-- 修改jdk版本 --><properties><java.version>1.8</java.version></properties><dependencies><!-- springBoot的启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>

1.3. 编写FirstFilter.java

package com.bjbs1.controller;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;/*** SpringBoot整合Filter方式一 * * <filter> *   <filter-name>FirstFilter</filter-name>*     <filter-class>com.bjsxt1.filter.FirstFilter</filter-class> * </filter>* * <filter-mapping> *    <filter-name>FirstFilter</filter-name>*     <url-pattern>/first</url-pattern> * </filter-mapping>*/// @WebFilter(filterName="FirstFilter",urlPatterns={"*.do","*.jsp"})
@WebFilter(filterName = "FirstFilter", urlPatterns = "/first")
public class FirstFilter implements Filter {@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain ch) throws IOException, ServletException {System.out.println("进入FirstFilter");ch.doFilter(req, res);System.out.println("离开FirstFilter");}@Overridepublic void init(FilterConfig cf) throws ServletException {}
}

1.4. @WebFilter注解

1.5. 编写App.java启动类

package com.bjbs1;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;/*** SpringBoot整合Filter方式一, SpringBoot启动类*/
@SpringBootApplication
@ServletComponentScan // 在springBoot启动时会扫描@WebFilter, 并将该类实例化
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}

1.6. 配置@ServletComponentScan注解, 在SpringBoot启动时会扫描@WebFilter, 并将该类实例化

1.7. 运行项目, 并用浏览器访问FirstFilter

2. 通过方法完成Filter组件的注册(SpringBoot整合Filter方式二)

2.1. 编写SecondFilter.java

package com.bjbs2.controller;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;/*** SpringBoot整合Filter方式二*/
public class SecondFilter implements Filter {@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain ch) throws IOException, ServletException {System.out.println("进入SecondFilter");ch.doFilter(req, res);System.out.println("离开SecondFilter");}@Overridepublic void init(FilterConfig cf) throws ServletException {}
}

2.2. 编写App2.java启动类

package com.bjbs2;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import com.bjbs2.controller.SecondFilter;/*** SpringBoot整合Filter方式二, SpringBoot启动类*/
@SpringBootApplication
public class App2 {public static void main(String[] args) {SpringApplication.run(App2.class, args);}/*** 注册Filter*/@Beanpublic FilterRegistrationBean getFilterRegistrationBean() {FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());// bean.addUrlPatterns(new String[]{"*.do","*.jsp"});bean.addUrlPatterns("/second");return bean;}
}

2.3. 使用org.springframework.boot.web.servlet.FilterRegistrationBean类注册Filter

2.4. 运行项目, 并用浏览器访问SecondFilter

003_SpringBoot整合Filter相关推荐

  1. springboot整合filter

    如何在SpringBoot当中去整合Filter,SpringBoot在整合Filter时,其实和整合Servlet差不多,提供了两种方案,一种还是通过注解扫描,完成Filter的注册,第二种方式呢, ...

  2. 第五篇:Spring Boot整合filter

    一.Springboot整合Servlet 第一种方案:通过注解扫描完成filter组建的注册 1.编写自定义filter(FirstFilter) //urlPattern是一个数组可以添加多个 / ...

  3. 玩转 SpringBoot 2 快速整合 Filter 注解版

    前言 本文主要介绍如何在SpringBoot 2 中使用 Filter 的快速搭建教程,阅读前需要你必须了解 Filter 的基础使用以及如何搭建 SpringBoot 项目. 快速演示操作 第一步: ...

  4. 玩转 SpringBoot 2 快速整合 Filter

    概述 SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter .但是我们可以通过 javaConfig(@Configuration +@Bea ...

  5. springmvc整合redis_111 SpringBoot整合Servlet JSP Filter Listener

    1. SpringBoot介绍 (1) 什么是Spring Boot? (2) Spring Boot有哪些特点? Spring Boot 设计目的是用来简化新 Spring 应用的初始搭建以及开发过 ...

  6. Spring Boot整合Servlet,Filter,Listener,访问静态资源

    目录 Spring Boot整合Servlet(两种方式) 第一种方式(通过注解扫描方式完成Servlet组件的注册): 第二种方式(通过方法完成Servlet组件的注册) Springboot整合F ...

  7. 整合servlet、整个filter、整合listener、文件上传

    一,整合 Servlet 通过注解扫描完成 Servlet 组件的注册 1.1 编写 servlet /** *SpringBoot 整合 Servlet 方式一 * *<servlet> ...

  8. Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件

    文章目录 零.学习目标 一.创建Spring Boot项目 - IntegrateThreeComponents02 二.使用路径扫描方式整合Servlet三大组件 (一)创建MyServlet类 ( ...

  9. 玩转 SpringBoot 2 快速整合拦截器

    概述 首先声明一下,这里所说的拦截器是 SpringMVC 的拦截器(HandlerInterceptor).使用SpringMVC 拦截器需要做如下操作: 创建拦截器类需要实现 HandlerInt ...

最新文章

  1. android sdk软件开发套件,ANDROIDSDK-SITARA
  2. 【号外】来人鸭~ 本公众号纳新啦~
  3. 图的概念以及常见的图论问题介绍
  4. 作业05之《6种质量属性战术》
  5. 数据库面试题【十三、大表数据查询,怎么优化】
  6. Kafka配置offsets.retention.minutes和log.retention.minutes的区别
  7. Android闹钟 AlarmManager的使用
  8. 深度探索I/O完成端口
  9. String字符串拼接小例
  10. python 卡方分箱算法_特征工程 - 分箱
  11. 计算机考研复试问题回答,关于考研复试问题的官方解答及部分问题答题模板!...
  12. java socket编程—单客户端与服务器通信
  13. CentOS 6.6上搭建C++运行环境
  14. 火端搜索V2.1原始程序
  15. C专家编程 第9章 再论数组 9.6 C语言的多维数组
  16. 手机移动OA:指尖上也可以拥有会议助手
  17. MySQL DBA的修炼与未来
  18. 视频帧率(Frame rate)
  19. Unity Shader - BRP - Soft Particle - 软粒子
  20. 流利地回答出面试官提出的八股问题,面试官却突然说“背得不错”,该怎么回答?...

热门文章

  1. java 多线程Callable和Runable执行顺序问题详解
  2. 递归,记忆化搜索,(棋盘分割)
  3. SWOOLE httpserver
  4. 云计算的台前幕后 ——微云网络
  5. SD-WAN技术三大优势将成为SD-WAN方案成功的关键—Vecloud
  6. draw.io项目本地部署
  7. SQL表内查重和删重
  8. CS231n 学习笔记(2)——神经网络 part2 :Softmax classifier
  9. vs2013编译apr时遇到的疑难杂症
  10. 求数组的子数组之和的最大值IV