web.xml中四种配置参数的执行顺序是:context-param ---> Listener ---> Filter ---> Servlet;

1. web容器首先会读取位于web.xml中的两个节点<context-param>和<listener>;

2. 然后去创建一个ServletContext上下文,被所有的组件共享;

3. 将web.xml中配置的<context-param>转化为键值对,存放于servletContext中;

4. web容器负责实例化监听器并注册监听器以用来监听各种事件,由于可以配置多个监听器,所以监听器本身的注册及执行也是有顺序的:

web容器是根据监听器实现的接口以及在web.xml中的顺序注册的,在web应用程序执行的时候,监听器执行的顺序和它们的注册顺序是一致的;在容器关闭的时候,监听器是按照和注册顺序相反的顺序被通知调用;

 

 load-on-startup 元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet 。如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值小的先被加载。如果值相等,容器可以自动选择先加载谁。