Web.xml配置详解之listener



<listener> <listen-class>com.myapp.MyListener</listen-class> </listener>

  

    • 作用
      该元素用来注册一个监听器类。可以收到事件什么时候发生以及用什么作为响应的通知。事件监听程序在建立、修改和删除会话或servlet环境时得到通知。常与context-param联合使用。
    • listen-class 指定监听类,该类继承ServletContextListener 包含初始化方法contextInitialized(ServletContextEvent event) 和 销毁方法contextDestoryed(ServletContextEvent event)
    • 示例:初始化日志配置文件
    •  <!--初始化日志配置文件 -->  
       <listener>  
           <listener-class>  
               com.myapp.LogbackConfigListener  
           </listener-class>  
       </listener>  
       <context-param>  
           <param-name>logbackConfigLocation</param-name>  
           <param-value>WEB-INF/logback.xml</param-value>  
       </context-param>  
      

        

      /**
       * 
       */
      package com.myapp;
      
      import javax.servlet.ServletContextEvent;
      import javax.servlet.ServletContextListener;
      import org.slf4j.Logger;  
      import org.slf4j.LoggerFactory;  
      import ch.qos.logback.classic.LoggerContext;  
      import ch.qos.logback.classic.joran.JoranConfigurator;  
      import ch.qos.logback.core.joran.spi.JoranException; 
      /**
       * @author louisliao
       *
       */
      public class LogbackConfigListener implements ServletContextListener {
      
      	private static final Logger logger = LoggerFactory.getLogger(LogbackConfigListener.class);  
      	private static final String CONFIG_LOCATION = "logbackConfigLocation";  
      	/* (non-Javadoc)
      	 * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
      	 */
      	public void contextDestroyed(ServletContextEvent arg0) {
      		// TODO Auto-generated method stub
      
      	}
      
      	/* (non-Javadoc)
      	 * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
      	 */
      	public void contextInitialized(ServletContextEvent event) {
      		// TODO Auto-generated method stub
              String logbackConfigLocation = event.getServletContext().getInitParameter(CONFIG_LOCATION);  
              String fn = event.getServletContext().getRealPath(logbackConfigLocation);  
              try {  
                  LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();  
                  loggerContext.reset();  
                  JoranConfigurator joranConfigurator = new JoranConfigurator();  
                  joranConfigurator.setContext(loggerContext);  
                  joranConfigurator.doConfigure(fn);  
                  logger.debug("loaded slf4j configure file from {}", fn);  
              }  
              catch (JoranException e) {  
                  logger.error("can loading slf4j configure file from " + fn, e);  
              }  
      
      	}
      
      }
      

       转自 http://blog.csdn.net/liaoxiaohua1981/article/details/6760423

posted @ 2015-08-10 15:06  用心每一天  阅读(534)  评论(0编辑  收藏  举报