[基础]Listener、Filter、Servlet初始化顺序

Listener > Filter > Servlet

Listener和Filter的初始化都是在容器启动完成之前初始化的。

Servlet缺省不进行初始化,如果想要servlet自动初始化,需要在指定的servlet中配置参数,没有此标签,默认启动时servlet不进行初始化。

初始化的顺序跟Listener、Filter、Servlet在web.xml中的顺序无关

而多个Filter或多个Servlet的时候,谁的mapping在前面,谁先初始化。例如,如果你需要在Struts之前对请求做一下预处理,则需要自行编写一个Filter,并且把它的Mapping写在Struts的前面。

但是,如果web.xml中配置了,初始化顺序:context-param > Listener > Filter > Servlet

例如,你的应用没有正确的对象注入,有可能跟初始化顺序有关。比如,需要注入Action的Service没能在正确的时间初始化。