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

 2023-09-13 阅读 14 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> Spring Boot系列博客】 (0)前言【从零开始学Spring Boot】: http://412887952-qq-com.iteye.com/blog/2291496 (1)spring boot起步之Hello World【从零开始学Spring Boot】: http://41288

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

 

Spring Boot 系列博客】

(0)前言【从零开始学Spring Boot】 :

http://412887952-qq-com.iteye.com/blog/2291496

(1)spring boot起步之Hello World【从零开始学Spring Boot】:

http://412887952-qq-com.iteye.com/blog/2291500

(2)Spring Boot返回json数据【从零开始学Spring Boot】

http://412887952-qq-com.iteye.com/blog/2291508

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

http://412887952-qq-com.iteye.com/blogs/2292376

(17)Spring Boot普通类调用bean【从零开始学Spring Boot】:

http://412887952-qq-com.iteye.com/blog/2292388

 

更多查看博客:http://412887952-qq-com.iteye.com/blog

 

 

 

 

 

上一篇文章已经对定义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 config) throws ServletException {

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

    }

   

 

    @Override

    publicvoid doFilter(ServletRequest request, ServletResponse response,

            FilterChain chain) throws IOException, ServletException {

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

        chain.doFilter(request, response);

    }

   

    @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

 

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

转载于:https://my.oschina.net/u/3229047/blog/833189

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/51441.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息