`
sunbin
  • 浏览: 353086 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring Boot过滤器、监听器【转】

 
阅读更多

上一篇文章已经对定义Servlet 的方法进行了说明,过滤器(Filter)和监听器(Listener)的注册方法和Servlet 一样,不清楚的可以查看下上一篇文章(20): 本文将直接使用@WebFilter@WebListener的方式,完成一个Filter 和一个 Listener;使用注解

@ServletComponentScan//这个就是扫描相应的Servlet;

 

过滤器(Filter)文件

com.kfit.filter.MyFilter.Java

package com.kfit.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将一个实现了javax.servlet.Filter接口的类定义为过滤器

 * 属性filterName声明过滤器的名称,可选

 * 属性urlPatterns指定要过滤URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)

 * @author Angel(QQ:412887952)

 * @version v.0.1

 */

@WebFilter(filterName="myFilter",urlPatterns="/*")

publicclass MyFilter implements Filter{

 

    @Override

    publicvoid init(FilterConfig configthrows ServletException {

        System.out.println("过滤器初始化");

    }

   

 

    @Override

    publicvoid doFilter(ServletRequest request, ServletResponse response,

            FilterChain chainthrows IOException, ServletException {

        System.out.println("执行过滤操作");

        chain.doFilter(requestresponse);

    }

   

    @Override

    publicvoid destroy() {

        System.out.println("过滤器销毁");

    }

}

 

 

 

ServletContext监听器(Listener)文件

com.kfit.listener.MyServletContextListener:

package com.kfit.listener;

 

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.annotation.WebListener;

 

/**

 * 使用@WebListener注解,实现ServletContextListener接口

 *

 * @author Angel(QQ:412887952)

 * @version v.0.1

 */

@WebListener

public class MyServletContextListener implements ServletContextListener {

 

         @Override

         public void contextDestroyed(ServletContextEvent arg0) {

                   System.out.println("ServletContex销毁");

         }

 

         @Override

         public void contextInitialized(ServletContextEvent arg0) {

                    System.out.println("ServletContex初始化");

         }

}

 

ServletContext监听器(Listener)文件(HttpSessionListener

MyHttpSessionListener.java

package com.kfit.listener;

 

import javax.servlet.annotation.WebListener;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

 

/**

 * 监听Session的创建与销毁

 *

 */

@WebListener

publicclassMyHttpSessionListenerimplementsHttpSessionListener {

 

    @Override

    publicvoid sessionCreated(HttpSessionEvent se) {

        System.out.println("Session 被创建");

    }

 

    @Override

    publicvoid sessionDestroyed(HttpSessionEvent se) {

        System.out.println("ServletContex初始化");

    }

 

}

 

注意不要忘记在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解。

启动的过程中我们会看到输出:

 

ServletContex初始化

过滤器初始化

服务启动后,随便访问一个页面,会看到输出:

执行过滤操作
Session 被创建

 

为什么无法看到session的过程:http://zhidao.baidu.com/link?url=EP-wlLvKpo8zI5NaIZrESzCdivq3Xg8VgOWQOvfpSLl3opTgvESerpo4wsG6tOs_dm6cQQMF_kQ6THNjNzr2Nq

 

至于如何使用代码的方式注册FilterListener,请参考上一篇文章关键Servlet的介绍。不同的是需要使用FilterRegistrationBean  ServletListenerRegistrationBean 这两个类。

分享到:
评论

相关推荐

    21. Spring Boot过滤器、监听器【从零开始学Spring Boot】

    在Spring Boot框架中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们可以帮助我们实现一些自定义的处理逻辑,如数据校验、日志记录、请求拦截等。下面将详细讲解这两个概念及其在实际开发中的...

    从零开始学Spring Boot

    1.24 Spring Boot过滤器、监听器 1.25 Spring Boot 拦截器HandlerInterceptor 1.26 Spring Boot启动加载数据CommandLineRunner 1.27 Spring Boot环境变量读取和属性对象的绑定 1.28 Spring Boot使用自定义的...

    Spring Boot入门与实战_springboot_spring_

    3. **API网关**:Zuul或Spring Cloud Gateway作为微服务系统的入口,实现路由转发和过滤器功能。 **八、Spring Boot 实战项目** 1. **创建RESTful API**:构建一个简单的Web服务,提供CRUD操作。 2. **集成安全框架...

    spring boot demo

    Spring Boot整合RabbitMQ主要通过Spring AMQP库,可以创建RabbitTemplate实例进行发送和接收消息,同时支持监听器容器来处理消息。配置RabbitMQ需要提供服务器地址、端口、虚拟主机、用户名和密码等信息。 ### 示例...

    spring-boot-starter-hbase自定义的spring-boot的hbasestarter

    在实际项目中,我们还可以利用Spring Boot的事件监听和AOP切面编程来扩展功能,比如添加日志记录、事务控制、性能监控等。这得益于Spring Boot的模块化设计,我们可以灵活地扩展和定制`spring-boot-starter-hbase`,...

    Spring Boot课件1 —— 创建和运行Spring Boot项目

    在实际开发中,我们可能还会涉及到Spring Boot的配置文件处理、环境变量、 Profiles切换、AOP(面向切面编程)、拦截器、过滤器等高级特性。Spring Boot也提供了强大的日志管理,我们可以使用`logging.level`配置来...

    Spring Boot的listener(监听器)简单使用实例详解

    "Spring Boot的listener(监听器)简单使用实例详解" 在Spring Boot中,listener(监听器)是一种非常重要的组件,它可以帮助我们在应用程序启动和停止时执行一些特定的任务。今天,我们将详细介绍Spring Boot的...

    Spring Boot项目开发实战教程.docx

    - **过滤器使用**:过滤器是一种可以对所有请求进行预处理和后处理的机制,教程会介绍如何自定义过滤器,以及如何注册过滤器。 - **拦截器使用**:拦截器主要针对控制器方法,可以实现对特定请求的拦截处理。教程将...

    spring-boot.zip

    这个“spring-boot.zip”压缩包包含了一个使用Maven构建的Spring Boot工程模板,它整合了多种实用功能,如Swagger用于API文档,以及过滤器、拦截器、监听器和Servlet等核心组件。 1. Maven:Maven 是一个项目管理...

    Spring Boot面试题(最新版)-重点.pdf

    可以使用@CrossOrigin注解或者全局过滤器(WebFilter)来处理跨域请求。 什么是CSRF攻击?CSRF(Cross-Site Request Forgery)跨站请求伪造攻击,攻击者诱使用户在不知情的情况下执行非预期的操作,比如修改账户...

    Spring Boot中文文档.rar

    28.4.1.Servlet,过滤器和监听器 注册Servlet,过滤器和监听器Spring Beans 28.4.2.Servlet上下文初始化 扫描Servlet,过滤器和侦听器 28.4.3.ServletWebServerApplicationContext 28.4.4.自定义...

    spring boot设置过滤器、监听器及拦截器的方法

    主要给大家介绍了关于spring boot设置过滤器、监听器及拦截器的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    spring-boot-cache.rar

    3. **缓存配置**:在 Spring Boot 中,你还可以通过 `@Configuration` 类来自定义缓存配置,包括自定义缓存管理器、缓存配置和事件监听器。 ```java @Configuration @EnableCaching public class CacheConfig { @...

    Spring boot restful api demo

    运行应用程序,Spring Boot将自动配置并监听一个默认端口(如8080)。现在,可以使用HTTP客户端工具,如Postman,向`http://localhost:8080/demo/items`发送GET请求,查看返回的`Item`列表。 **六、安全与测试** ...

    Spring Boot整合Shiro.zip

    - **安全过滤器链**:根据应用需求,定制过滤器链,配置合适的过滤规则,确保安全策略的有效执行。 - **日志管理**:Shiro提供了丰富的日志接口,可以与各种日志框架集成,方便追踪和调试安全问题。 4. **实战...

    16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    这里的`filter`属性用于指定启用的Druid内置过滤器,如`stat`用于统计信息,`wall`用于SQL防火墙,`log4j`用于日志记录。 接下来,我们可以选择编程式或声明式方式来配置Druid的其他高级特性,比如数据源的初始化、...

    springboot2集成代码生成器、监听器、过滤器、拦截器、分布式定时任务、pagehelper

    本教程将探讨如何在Spring Boot 2项目中整合代码生成器、监听器、过滤器、拦截器、分布式定时任务以及PageHelper分页插件。这些组件在实际开发中都有着重要的作用。 1. **代码生成器**: 代码生成器是一种工具,...

    Spring Boot整合Shiro搭建权限管理系统.pdf

    在本文中,我们将深入探讨如何使用Spring Boot与Apache Shiro框架来构建一个权限管理系统。Spring Boot因其简洁的配置和快速的开发效率而受到广大开发者喜爱,而Shiro则是一个轻量级的安全框架,用于实现身份认证、...

Global site tag (gtag.js) - Google Analytics