Rechercher
 

Web listeners

Cycle de vie d'une servlet Web Filters



Accès rapide :
La vidéo
Les codes de la vidéo
Un écouteur sur l'activité des requêtes HTTP
Un écouteur sur l'activité des sessions HTTP
Un écouteur sur l'activité de l'application Web

La vidéo

La plate-forme Java EE définit la notion de listener Web : un tel objet peut être notifié lorsque certains événements relatifs à une application Java EE surviennent. Bien entendu, un listener doit être enregistré pour recevoir des notifications. proposés par l'API des Servlets.


Web listeners

Les codes de la vidéo

Un écouteur sur l'activité des requêtes HTTP

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
package com.koor.hello;

import java.util.logging.Level;
import java.util.logging.Logger;

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

@WebListener
public class MyRequestListener implements ServletRequestListener {

    private static final Logger LOG = 
            Logger.getLogger( MyRequestListener.class.getName() );

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        HttpServletRequest request = (HttpServletRequest) sre.getServletRequest();
        request.setAttribute( "startTime", System.currentTimeMillis() );
    }
    
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        HttpServletRequest request = (HttpServletRequest) sre.getServletRequest();
        long startTime = (Long) request.getAttribute( "startTime" );
        LOG.log( Level.INFO, "Request is produced in {0} milliseconds", 
                 System.currentTimeMillis() - startTime );
    }
    
}
Fichier MyRequestListener.java

Un écouteur sur l'activité des sessions HTTP

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
package com.koor.hello;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/*class MyListener implements HttpSessionAttributeListener {
    
}*/

@WebListener
public class MySessionListener implements HttpSessionListener {

    private static final Logger LOG = 
            Logger.getLogger( MySessionListener.class.getName() );
    private int sessionCounter = 0;
    
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        synchronized ( this ) { 
            sessionCounter ++;
        }
        LOG.log( Level.INFO, 
                 "======= Session created - {0} session in memory ======", 
                 sessionCounter );
    }
    
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        synchronized ( this ) { 
            sessionCounter --;
        }
        LOG.log( Level.INFO, 
                 "======= Session destroyed - {0} session in memory ======", 
                 sessionCounter );
    }
    
}
Fichier MySessionListener.java

Un écouteur sur l'activité de l'application Web

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
package com.koor.hello;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class MyServletContextListener implements ServletContextListener {

    private static final Logger LOG = 
            Logger.getLogger( MyServletContextListener.class.getName() );
    
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        LOG.log( Level.INFO, "====== HelloWorld App Started ====== " );
    }
    
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        LOG.log( Level.INFO, "====== HelloWorld App Stopped ====== " );
    }
    
}
Fichier MyServletContextListener.java


Cycle de vie d'une servlet Web Filters