`

SpringBoot 对Servlet、Filter、Listener的配置

 
阅读更多
前言

传统的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-name>
    <url-pattern>/*</url-pattern>
    <init-param>
       <param-name>paramName</param-name>
       <param-value>paramValue</param-value>
    </init-param>
</filter-mapping>


然而spring-boot中很明显不能这样实现,那怎么办呢?看完下面的教程,答案自然知道了

老方法(新方法请直接下拉)

1.创建自定义Filter
package com.cppba.filter;

import javax.servlet.*;
import java.io.IOException;

public class TestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        System.out.println("TestFilter");
    }

    @Override
    public void destroy() {

    }
}


2.在ApplicationConfiguration.java中增加一个@bean
@Bean
    public FilterRegistrationBean testFilterRegistration() {

        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new TestFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("testFilter");
        registration.setOrder(1);
        return registration;
    }


3.启动项目
你会看到控制台打印如下代码:


4.访问项目
最后我们访问以下http://127.0.0.1:8080/test
如果你看到控制台打印出:TestFilter


恭喜你,配置成功!
参考项目:https://github.com/bigbeef/cppba-spring-boot
github地址:https://github.com/bigbeef
个人博客:http://www.cppba.com


2017-04-20 最新spring-boot增加Filter方法

首先定义一个Filter
@Order(1)
//重点
@WebFilter(filterName = "testFilter1", urlPatterns = "/*")
public class TestFilterFirst implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        System.out.println("TestFilter1");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}

比较核心的代码是自定义类上面加上@WebFilter,其中@Order注解表示执行过滤顺序,值越小,越先执行

我们在spring-boot的入口处加上如下注解@ServletComponentScan:
@SpringBootApplication(scanBasePackages = "com.cppba")
//重点
@ServletComponentScan
public class Application {
    public static void main(String[] args) throws UnknownHostException {
        SpringApplication app = new SpringApplication(Application.class);
        Environment environment = app.run(args).getEnvironment();
    }
}

这种方法效果和上面版本一样,但是用起来更加方便!
http://www.jianshu.com/p/05c8be17c80a


SpringBoot初始教程之Servlet、Filter、Listener配置(七)
http://blog.csdn.net/king_is_everyone/article/details/53116744

Spring Boot 拦截器
http://blog.csdn.net/catoop/article/details/50501696

Spring Boot实战之Filter实现简单的Http Basic认证
http://blog.csdn.net/sun_t89/article/details/51916834
分享到:
评论

相关推荐

    SpringBoot初始教程之Servlet、Filter、Listener配置详解

    本篇文章将详细介绍如何在SpringBoot中配置Servlet、Filter、Listener。 一、Servlet配置 在SpringBoot中,Servlet可以通过@WebServlet注解进行配置。@WebServlet是Servlet 3.0 API中提供的注解,它可以完全代替...

    SpringBoot之Filter和Listener简单运用.rar

    同时,理解Spring Boot的自动配置机制和Bean生命周期也是正确使用Filter和Listener的关键。 总的来说,Spring Boot的Filter和Listener提供了强大的功能,可以帮助开发者实现各种自定义逻辑,从请求处理到应用生命...

    SpringBoot如何注册Servlet、Filter、Listener的几种方式

    在Servlet 3.0之前,我们通常依赖于`web.xml`文件来配置Servlet、Filter和Listener,但随着技术的进步,SpringBoot提供了更加灵活的注册方式。本文将详细介绍SpringBoot中注册Servlet、Filter和Listener的两种方法。...

    SpringBoot之配置嵌入式Servlet容器.pdf

    标题“SpringBoot之配置嵌入式Servlet容器.pdf”透露了文档的核心内容,主要讲解了在SpringBoot框架中如何配置和使用嵌入式Servlet容器。SpringBoot作为一个广泛使用的Java框架,它的一个显著优势就是能快速搭建项目...

    SpringBoot注册Servlet的三种方法详解

    总的来说,Spring Boot为Servlet、Filter和Listener提供了灵活的注册方式,既支持传统的XML配置,也支持更现代的Java配置和注解驱动的编程模式。选择哪种方式取决于项目需求和个人喜好,但推荐使用Java配置和注解,...

    SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解

    本文主要介绍了SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程,通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值。 在SpringBoot中,默认使用Tomcat作为嵌入式的...

    springboot-web

    例如,我们可以在SpringBoot的配置类中注册Servlet、Filter和Listener,通过`ServletRegistrationBean`、`FilterRegistrationBean`和`ApplicationListener`进行管理。对于Interceptor,我们可以通过`addInterceptors...

    springboot文档.pdf

    例如,@SpringBootApplication 注解用于启用自动配置和组件扫描,@MapperScan 注解用于扫描 Dao 层的接口,@ServletComponentScan 注解用于扫描 Servlet、Filter 和 Listener。 整合 Servlet、Filter 和 Listener ...

    springboot知识点整理

    4.10.2 注册servlet三大组件【servlet,filter,listener】 98 4.10.3 替换为其他嵌入式容器 102 4.10.4 嵌入式servlet容器自动配置原理 103 4.10.5 嵌入式servlet容器启动原理 103 4.11 使用外置的Servlet容器 104 ...

    创建简单springboot框架

    这种方式更灵活,可以对Servlet的配置有更细粒度的控制。 #### 三、整合Filter 整合Filter的方式与整合Servlet类似,支持通过注解扫描和方法注册两种方式。 **1.1 编写Filter** 创建一个实现了`Filter`接口的类...

    springboot权限控制系统

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    Eclipse-SpringBoot框架-注解介绍.docx

    在本文档中,我们将深入探讨Spring Boot如何使用注解来管理和配置Controller、Servlet、Filter、Listener以及Interceptor。 首先,让我们关注Spring Boot中的Controller加载。在Spring Boot应用中,`@SpringBoot...

    springboot+mybatis+druid+jsp+bootstrap实现后台权限管理系统源码.zip

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    springboot简单案例

    @ServletComponentScan // 扫描filter servlet listener @MapperScan("cn.springBoot.dao") // mybatis 扫描,没有这个不能注入 @SpringBootApplication public class Application { // TRACE 日志文件级别 public ...

    springboot web

    6. **过滤器(Filter)**:SpringBoot支持Servlet过滤器,可以用来在请求被处理之前或之后执行特定操作。例如,可以使用过滤器进行登录验证、GZIP压缩或添加统一的响应头。 7. **拦截器(Interceptor)**:Spring ...

    springboot+权限管理系统 shiro + ssm实现 实现菜单,自用

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    springboot+mybatis+mysql+jsp+bootstrap+web.xml例子

    6. **web.xml**:在传统的Java Web应用中,`web.xml`是部署描述符,用于配置应用程序的组件,如Servlet、Filter和Listener。虽然Spring Boot推荐使用注解驱动的配置,但在这个例子中,可能还涉及到一些传统Web应用的...

    毕业设计,基于springboot+mybatis+druid+jsp+bootstrap实现后台权限管理系统,内含源码+数据库

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    servlet-3_1-final(中文版).doc

    开发者可以直接在Servlet、Filter、Listener等组件上使用注解来声明和配置,简化了部署描述符的维护工作。 3. **微容器支持**:Servlet 3.1引入了微容器的概念,允许在单一的Servlet实例中运行多个独立的Servlet上...

Global site tag (gtag.js) - Google Analytics