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

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.ServletContextAttributeEvent;
  20. import javax.servlet.ServletContextAttributeListener;
  21. import javax.servlet.ServletContextEvent;
  22. import javax.servlet.ServletContextListener;
  23. /**
  24.  * Example listener for context-related application events, which were
  25.  * introduced in the 2.3 version of the Servlet API.  This listener
  26.  * merely documents the occurrence of such events in the application log
  27.  * associated with our servlet context.
  28.  *
  29.  * @author Craig R. McClanahan
  30.  * @version $Revision: 466607 $ $Date: 2006-10-21 17:09:50 -0600 (Sat, 21 Oct 2006) $
  31.  */
  32. public final class ContextListener
  33.     implements ServletContextAttributeListener, ServletContextListener {
  34.     // ----------------------------------------------------- Instance Variables
  35.     /**
  36.      * The servlet context with which we are associated.
  37.      */
  38.     private ServletContext context = null;
  39.     // --------------------------------------------------------- Public Methods
  40.     /**
  41.      * Record the fact that a servlet context attribute was added.
  42.      *
  43.      * @param event The servlet context attribute event
  44.      */
  45.     public void attributeAdded(ServletContextAttributeEvent event) {
  46. log("attributeAdded('" + event.getName() + "', '" +
  47.     event.getValue() + "')");
  48.     }
  49.     /**
  50.      * Record the fact that a servlet context attribute was removed.
  51.      *
  52.      * @param event The servlet context attribute event
  53.      */
  54.     public void attributeRemoved(ServletContextAttributeEvent event) {
  55. log("attributeRemoved('" + event.getName() + "', '" +
  56.     event.getValue() + "')");
  57.     }
  58.     /**
  59.      * Record the fact that a servlet context attribute was replaced.
  60.      *
  61.      * @param event The servlet context attribute event
  62.      */
  63.     public void attributeReplaced(ServletContextAttributeEvent event) {
  64. log("attributeReplaced('" + event.getName() + "', '" +
  65.     event.getValue() + "')");
  66.     }
  67.     /**
  68.      * Record the fact that this web application has been destroyed.
  69.      *
  70.      * @param event The servlet context event
  71.      */
  72.     public void contextDestroyed(ServletContextEvent event) {
  73. log("contextDestroyed()");
  74. this.context = null;
  75.     }
  76.     /**
  77.      * Record the fact that this web application has been initialized.
  78.      *
  79.      * @param event The servlet context event
  80.      */
  81.     public void contextInitialized(ServletContextEvent event) {
  82. this.context = event.getServletContext();
  83. log("contextInitialized()");
  84.     }
  85.     // -------------------------------------------------------- Private Methods
  86.     /**
  87.      * Log a message to the servlet context application log.
  88.      *
  89.      * @param message Message to be logged
  90.      */
  91.     private void log(String message) {
  92. if (context != null)
  93.     context.log("ContextListener: " + message);
  94. else
  95.     System.out.println("ContextListener: " + message);
  96.     }
  97.     /**
  98.      * Log a message and associated exception to the servlet context
  99.      * application log.
  100.      *
  101.      * @param message Message to be logged
  102.      * @param throwable Exception to be logged
  103.      */
  104.     private void log(String message, Throwable throwable) {
  105. if (context != null)
  106.     context.log("ContextListener: " + message, throwable);
  107. else {
  108.     System.out.println("ContextListener: " + message);
  109.     throwable.printStackTrace(System.out);
  110. }
  111.     }
  112. }