Web listeners
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.
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
2024 © SARL Infini Software - Tous droits réservés
Mentions légales
Les informations présentes dans ce site vous sont fournies dans le but de vous aider à acquérir les compétences nécessaires à
l'utilisation des langages ou des technologies considérés. Infini Software ne pourra nullement être tenu responsable de l'utilisation
des informations présentes dans ce site.
De plus, si vous remarquez des erreurs ou des oublis dans ce document, n'hésitez surtout pas à nous le signaler en envoyant un mail
à l'adresse : .
Les autres marques et les noms de produits cités dans ces documents sont la propriété de leurs éditeurs respectifs.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :