JavaWeb --- Oyente

JavaWeb: escucha

descripción general del oyente

  • ¿Qué es un oyente?

    El oyente se usa para monitorear objetos de dominio

  • ¿Qué es un objeto de dominio?
    HttpServletContext HtttpSession HttpRequest HttpPageContext

  • Analogía para monitorear el estado de los compañeros de clase

  • ¿Qué son los oyentes?

    • Oyente monitoreando la creación y destrucción de objetos de dominio de vida o muerte

    • El oyente supervisa los cambios en las propiedades de los objetos de dominio

  • Cuales son las caracteristicas

    • Sin dirección de escucha

    • Diferentes objetos usan diferentes oyentes
      img

Uso de oyente

  • idea crear oyente
  • Servlet analógico y filtro

Caso de código:

Demo1Listener

package com.lbl.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.util.Timer;
import java.util.TimerTask;

@WebListener()
public class Demo1Listener implements ServletContextListener{
    
    

    public Demo1Listener() {
    
    
    }

    //这个方法用来监听ServletContext域的创建
     /*
        这个域:服务器启动时创建
     */
    public void contextInitialized(ServletContextEvent sce) {
    
    
        //设置一个定时器
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                try {
    
    
                    System.out.println("--定时发送邮件");
                } catch (Exception e) {
    
    
                    e.printStackTrace();
                }
            }
        }, 5000, 2000);
        System.out.println("ServletContext域的创建啦");
    }

    //这个方法用来监听ServletContext域的销毁
    /*
       这个域:服务器关闭时销毁
     */
    public void contextDestroyed(ServletContextEvent sce) {
    
    
        System.out.println("ServletContext域销毁啦");
    }
}

resultado de ejecución:
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

## El código anterior usa un temporizador, por cierto, temporizador Temporizador

Ver comentarios de código

Código de temporizador:

package com.lbl.listener;


import java.util.Timer;
import java.util.TimerTask;

public class TestDemo {
    
    
    public static void main(String[] args) {
    
    
        //要使用计时器,首先new一个计时器
        Timer timer = new Timer();

        //然后调用计时器的schedule方法,可以理解为设置计划
        //该方法内有三个参数
        //第一个参数是要传一个TimerTeak类,我下面直接new了一个匿名内部内,因为该类实现了runable接口,所以我要重写run方法
        //第二个参数是延迟执行时间,如果不延时执行,则直接设置为0
        //第三个参数为时间间隔,单位是毫秒
        timer.schedule(new TimerTask() {
    
    
            @Override
            public void run() {
    
    
                System.out.println("时间到了");
            }
        }, 5000,2000);  //5秒之后执行run方法,每隔2秒再执行 run方法
    }
}

resultado de ejecución:

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_37924905/article/details/108622728
Recomendado
Clasificación