转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6760423
- 定义
- <listener>
- <listen-class>com.myapp.MyListener</listen-class>
- </listener>
- 作用
该元素用来注册一个监听器类。可以收到事件什么时候发生以及用什么作为响应的通知。事件监听程序在建立、修改和删除会话或servlet环境时得到通知。常与context-param联合使用。 - listen-class 指定监听类,该类继承ServletContextListener 包含初始化方法contextInitialized(ServletContextEvent event) 和 销毁方法contextDestoryed(ServletContextEvent event)
- 示例:初始化日志配置文件
Web.xml配置详解之listener
- <!--初始化日志配置文件 -->
- <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);
- }
- }
- }