SessionListener.java
上传用户:bj_pst
上传日期:2019-07-07
资源大小:7353k
文件大小:5k
源码类别:

Java编程

开发平台:

Java

  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements.  See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License.  You may obtain a copy of the License at
  8. *
  9. *     http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package listeners;
  18. import javax.servlet.ServletContext;
  19. import javax.servlet.ServletContextEvent;
  20. import javax.servlet.ServletContextListener;
  21. import javax.servlet.http.HttpSessionAttributeListener;
  22. import javax.servlet.http.HttpSessionBindingEvent;
  23. import javax.servlet.http.HttpSessionEvent;
  24. import javax.servlet.http.HttpSessionListener;
  25. /**
  26.  * Example listener for context-related application events, which were
  27.  * introduced in the 2.3 version of the Servlet API.  This listener
  28.  * merely documents the occurrence of such events in the application log
  29.  * associated with our servlet context.
  30.  *
  31.  * @author Craig R. McClanahan
  32.  * @version $Revision: 466607 $ $Date: 2006-10-21 17:09:50 -0600 (Sat, 21 Oct 2006) $
  33.  */
  34. public final class SessionListener
  35.     implements ServletContextListener,
  36.        HttpSessionAttributeListener, HttpSessionListener {
  37.     // ----------------------------------------------------- Instance Variables
  38.     /**
  39.      * The servlet context with which we are associated.
  40.      */
  41.     private ServletContext context = null;
  42.     // --------------------------------------------------------- Public Methods
  43.     /**
  44.      * Record the fact that a servlet context attribute was added.
  45.      *
  46.      * @param event The session attribute event
  47.      */
  48.     public void attributeAdded(HttpSessionBindingEvent event) {
  49. log("attributeAdded('" + event.getSession().getId() + "', '" +
  50.     event.getName() + "', '" + event.getValue() + "')");
  51.     }
  52.     /**
  53.      * Record the fact that a servlet context attribute was removed.
  54.      *
  55.      * @param event The session attribute event
  56.      */
  57.     public void attributeRemoved(HttpSessionBindingEvent event) {
  58. log("attributeRemoved('" + event.getSession().getId() + "', '" +
  59.     event.getName() + "', '" + event.getValue() + "')");
  60.     }
  61.     /**
  62.      * Record the fact that a servlet context attribute was replaced.
  63.      *
  64.      * @param event The session attribute event
  65.      */
  66.     public void attributeReplaced(HttpSessionBindingEvent event) {
  67. log("attributeReplaced('" + event.getSession().getId() + "', '" +
  68.     event.getName() + "', '" + event.getValue() + "')");
  69.     }
  70.     /**
  71.      * Record the fact that this web application has been destroyed.
  72.      *
  73.      * @param event The servlet context event
  74.      */
  75.     public void contextDestroyed(ServletContextEvent event) {
  76. log("contextDestroyed()");
  77. this.context = null;
  78.     }
  79.     /**
  80.      * Record the fact that this web application has been initialized.
  81.      *
  82.      * @param event The servlet context event
  83.      */
  84.     public void contextInitialized(ServletContextEvent event) {
  85. this.context = event.getServletContext();
  86. log("contextInitialized()");
  87.     }
  88.     /**
  89.      * Record the fact that a session has been created.
  90.      *
  91.      * @param event The session event
  92.      */
  93.     public void sessionCreated(HttpSessionEvent event) {
  94. log("sessionCreated('" + event.getSession().getId() + "')");
  95.     }
  96.     /**
  97.      * Record the fact that a session has been destroyed.
  98.      *
  99.      * @param event The session event
  100.      */
  101.     public void sessionDestroyed(HttpSessionEvent event) {
  102. log("sessionDestroyed('" + event.getSession().getId() + "')");
  103.     }
  104.     // -------------------------------------------------------- Private Methods
  105.     /**
  106.      * Log a message to the servlet context application log.
  107.      *
  108.      * @param message Message to be logged
  109.      */
  110.     private void log(String message) {
  111. if (context != null)
  112.     context.log("SessionListener: " + message);
  113. else
  114.     System.out.println("SessionListener: " + message);
  115.     }
  116.     /**
  117.      * Log a message and associated exception to the servlet context
  118.      * application log.
  119.      *
  120.      * @param message Message to be logged
  121.      * @param throwable Exception to be logged
  122.      */
  123.     private void log(String message, Throwable throwable) {
  124. if (context != null)
  125.     context.log("SessionListener: " + message, throwable);
  126. else {
  127.     System.out.println("SessionListener: " + message);
  128.     throwable.printStackTrace(System.out);
  129. }
  130.     }
  131. }