tomcat服务器启动,加载web项目时,是否在启动时就加载filter呢?filter不是在匹配的时候才执行的吗?为什么tomcat启动时就加载呢?自己写了个例子,确实是tomcat启动时就加载filter,真是这样吗?tomcat是如何加载的呢?
Listener的初始化最早,Filter次之。他俩的初始化都是在容器启动完成之前初始化的。
Servlet没有初始化,原因是没有匹配的请求进来。
如果想要servlet自动初始化,需要在指定的servlet中配置参数,没有此标签,默认启动时servlet不进行初始化。
初始化的顺序跟Listener、Filter、Servlet在web.xml中的顺序无关
而多个Filter或多个Servlet的时候,谁的mapping在前面,谁先初始化。
如果web.xml中配置了,初始化顺序:
context-param > Listener > Filter > Servlet
filter的初始化方法在服务器启动时执行,过滤方法在请求发出后立即调用,可以过滤特定的URL,比如struts就是这样。其他web.xml的执行顺序参考http://zyn010101.iteye.com/blog/1839116