ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot 监听器listener的使用

2021-04-05 12:59:41  阅读:262  来源: 互联网

标签:springboot boot listener 监听器 org import servlet public


一.监听器

1.1 概述

监听器:主要是针对监听ServletContext、HttpSession、ServletRequest三个域对象以及这三个域对象引发的事件。

https://blog.csdn.net/baidu_29343517/article/details/86697540

1.2 过滤器,监听器,拦截器

过滤器: https://blog.csdn.net/u011066470/article/details/115376422

监听器: https://blog.csdn.net/u011066470/article/details/108110841

拦截器:  https://mp.csdn.net/editor/html/112644897

二 springboot集成listener

2.1  第一种方式

第一种方式为:ServletContextListener,在启动类上进行@bean进行注册

package com.ljf.spring.boot.demo.spt.listener.controller;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class SecondListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("SecondListener..init.....");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("SecondListener..destory.....");
    }
}

启动类:

package com.ljf.spring.boot.demo.spt.listener;

import com.ljf.spring.boot.demo.spt.listener.controller.SecondListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class App2 {
    public static void main(String args[]){
        SpringApplication.run(App2.class, args);
        System.out.println( "Hello World!" );
    }
    /**
     * 注册listener
     */
    @Bean
    public ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){
        ServletListenerRegistrationBean<SecondListener> bean= new ServletListenerRegistrationBean<SecondListener>(new SecondListener());
        return bean;
    }
}

3.测试:

 2.2  第2种方式:requestListener

直接使用@WebListener注解,使用requestlistener,监听到每一个请求。

package com.ljf.spring.boot.demo.spt.listener.controller;

import org.apache.catalina.filters.ExpiresFilter;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;

/**
 * @ClassName: ReuestListener
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/04/05 11:13:52 
 * @Version: V1.0
 **/
@WebListener
public class ReuestListener implements ServletRequestListener {

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        HttpServletRequest url=(HttpServletRequest) sre.getServletRequest();
        System.out.println("======requestInitialized========"+url.getRequestURL());

    }
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        // TODO Auto-generated method stub
        System.out.println("======requestDestroyed========");
    }

}

2.启动类:

package com.ljf.spring.boot.demo.spt.listener;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

/**
 * @ClassName: App3
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/04/05 11:16:08 
 * @Version: V1.0
 **/
@SpringBootApplication
@ServletComponentScan
public class App3 {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
        System.out.println("listener3 qidong .....");
    }
}

3.测试

 2.3  httpsession的监听器

 

 

标签:springboot,boot,listener,监听器,org,import,servlet,public
来源: https://blog.csdn.net/u011066470/article/details/115440561

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有