Web.xml配置详解之listener

来源:互联网 发布:日语等级考试分数算法 编辑:程序博客网 时间:2024/05/29 03:56
  • 定义
<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);          }  }}



 

原创粉丝点击