新建,AListerner,BListerner,Listerner1,Listerner2,MyListerner.类,以上5个类全部都实现ServletContextListener接口,覆写contextInitialized()方法,
输出System.out.println("ServletContex初始化---AListerner");
类似的BListerner,Listerner1,Listerner2,MyListerner.也在contextInitialized()打印一条语句。
package com.servlet;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class AListerner implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
System.out.println("ServletContex初始化---AListerner");
}
}
启动Tomcat,控制台输出顺序AListerner→BListerner→Listerner1→Listerner2→MyListerner.
新增一个FListerner类,实现ServletContextListener接口,覆写contextInitialized()方法,查看输出效果:
以上可以知道,监听器的执行顺序是AListerner→BListerner→FListerner→Listerner1→Listerner2→MyListerner.
根据类名的排序来执行。
用web.xm方式,是调整listerner标签方式来控制执行顺序。
<listener>
<listener-class>com.xxx.HelloServletContextListner</listener-class>
</listener>