ServletContextAttributeListener Example
ServletContextAttributeListener Example Tutorial explains about how to use ServletContextAttributeListener in a web application.
The listener ServletContextAttributeListener is an interface extending from base interface java.util.EventListener.
ServletContextAttributeListener will be notified when an attribute is changed on a particular servletcontext
ServletContextAttributeListener interface has following methods:
attributeAdded(ServletContextAttributeEvent event) attributeRemoved(ServletContextAttributeEvent event) attributeReplaced(ServletContextAttributeEvent event)
Package Structure
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <listener> <listener-class>com.listener.ServletContextAttributeListenerExample</listener-class> </listener> </web-app>
ServletContextAttributeListenerExample.java
package com.listener;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
public class ServletContextAttributeListenerExample implements ServletContextAttributeListener {
/*
* This method is invoked when an attribute is added to the ServletContext object
*/
public void attributeAdded(ServletContextAttributeEvent scab) {
System.out.println("An attribute was added to the ServletContext object");
}
/*
* This method is invoked when an attribute is removed from the ServletContext object
*/
public void attributeRemoved(ServletContextAttributeEvent scab) {
System.out.println("An attribute was removed from the ServletContext object");
}
/*
* This method is invoked when an attribute is replaced in the ServletContext object
*/
public void attributeReplaced(ServletContextAttributeEvent scab) {
System.out.println("An attribute was replaced in the ServletContext object");
}
}
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
public class ServletContextAttributeListenerExample implements ServletContextAttributeListener {
/*
* This method is invoked when an attribute is added to the ServletContext object
*/
public void attributeAdded(ServletContextAttributeEvent scab) {
System.out.println("An attribute was added to the ServletContext object");
}
/*
* This method is invoked when an attribute is removed from the ServletContext object
*/
public void attributeRemoved(ServletContextAttributeEvent scab) {
System.out.println("An attribute was removed from the ServletContext object");
}
/*
* This method is invoked when an attribute is replaced in the ServletContext object
*/
public void attributeReplaced(ServletContextAttributeEvent scab) {
System.out.println("An attribute was replaced in the ServletContext object");
}
}
Server Console Output
INFO: Initializing ProtocolHandler ["http-bio-8080"] Nov 29, 2011 5:47:56 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Nov 29, 2011 5:47:56 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1246 ms Nov 29, 2011 5:47:56 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Nov 29, 2011 5:47:56 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.21 Nov 29, 2011 5:47:56 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [140] milliseconds. An attribute was added to the ServletContext object
ServletContextAttributeListenerExample
package com.listener;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ServletContextAttributeListenerExample implements ServletContextAttributeListener {
/*
* This method is invoked when an attribute is added to the ServletContext object
*/
public void attributeAdded(ServletContextAttributeEvent scab) {
System.out.println("An attribute was added to the ServletContext object");
}
/*
* This method is invoked when an attribute is removed from the ServletContext object
*/
public void attributeRemoved(ServletContextAttributeEvent scab) {
System.out.println("An attribute was removed from the ServletContext object");
}
/*
* This method is invoked when an attribute is replaced in the ServletContext object
*/
public void attributeReplaced(ServletContextAttributeEvent scab) {
System.out.println("An attribute was replaced in the ServletContext object");
}
}
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ServletContextAttributeListenerExample implements ServletContextAttributeListener {
/*
* This method is invoked when an attribute is added to the ServletContext object
*/
public void attributeAdded(ServletContextAttributeEvent scab) {
System.out.println("An attribute was added to the ServletContext object");
}
/*
* This method is invoked when an attribute is removed from the ServletContext object
*/
public void attributeRemoved(ServletContextAttributeEvent scab) {
System.out.println("An attribute was removed from the ServletContext object");
}
/*
* This method is invoked when an attribute is replaced in the ServletContext object
*/
public void attributeReplaced(ServletContextAttributeEvent scab) {
System.out.println("An attribute was replaced in the ServletContext object");
}
}
Tomcat Console Output
An attribute was added to the ServletContext object