Mega Code Archive

 
Categories / Java Tutorial / Servlet
 

Servlet HttpSessionListener

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /**  * Example listener for context-related application events, which were  * introduced in the 2.3 version of the Servlet API.  This listener  * merely documents the occurrence of such events in the application log  * associated with our servlet context.  *  * @author Craig R. McClanahan  * @version $Revision: 466607 $ $Date: 2006-10-21 17:09:50 -0600 (Sat, 21 Oct 2006) $  */ public final class MyServlet     implements ServletContextListener,          HttpSessionAttributeListener, HttpSessionListener {     // ----------------------------------------------------- Instance Variables     /**      * The servlet context with which we are associated.      */     private ServletContext context = null;     // --------------------------------------------------------- Public Methods     /**      * Record the fact that a servlet context attribute was added.      *      * @param event The session attribute event      */     public void attributeAdded(HttpSessionBindingEvent event) {   log("attributeAdded('" + event.getSession().getId() + "', '" +       event.getName() + "', '" + event.getValue() + "')");     }     /**      * Record the fact that a servlet context attribute was removed.      *      * @param event The session attribute event      */     public void attributeRemoved(HttpSessionBindingEvent event) {   log("attributeRemoved('" + event.getSession().getId() + "', '" +       event.getName() + "', '" + event.getValue() + "')");     }     /**      * Record the fact that a servlet context attribute was replaced.      *      * @param event The session attribute event      */     public void attributeReplaced(HttpSessionBindingEvent event) {   log("attributeReplaced('" + event.getSession().getId() + "', '" +       event.getName() + "', '" + event.getValue() + "')");     }     /**      * Record the fact that this web application has been destroyed.      *      * @param event The servlet context event      */     public void contextDestroyed(ServletContextEvent event) {   log("contextDestroyed()");   this.context = null;     }     /**      * Record the fact that this web application has been initialized.      *      * @param event The servlet context event      */     public void contextInitialized(ServletContextEvent event) {   this.context = event.getServletContext();   log("contextInitialized()");     }     /**      * Record the fact that a session has been created.      *      * @param event The session event      */     public void sessionCreated(HttpSessionEvent event) {   log("sessionCreated('" + event.getSession().getId() + "')");     }     /**      * Record the fact that a session has been destroyed.      *      * @param event The session event      */     public void sessionDestroyed(HttpSessionEvent event) {   log("sessionDestroyed('" + event.getSession().getId() + "')");     }     // -------------------------------------------------------- Private Methods     /**      * Log a message to the servlet context application log.      *      * @param message Message to be logged      */     private void log(String message) {   if (context != null)       context.log("SessionListener: " + message);   else       System.out.println("SessionListener: " + message);     }     /**      * Log a message and associated exception to the servlet context      * application log.      *      * @param message Message to be logged      * @param throwable Exception to be logged      */     private void log(String message, Throwable throwable) {   if (context != null)       context.log("SessionListener: " + message, throwable);   else {       System.out.println("SessionListener: " + message);       throwable.printStackTrace(System.out);   }     } } <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>     <listener>         <listener-class>MyServlet</listener-class>     </listener> </web-app>