listener >> filter >> servlet >> spring
所以,如果过滤器中要使用到 bean,可以将spring 的加载 改成 Listener的方式
<context-param>、<listener>、<filter>、<servlet>
四种节点而言
启动服务器时的加载顺序是context-param ==> listener ==> filter ==> servlet
注意: 对于同一类型的配置节而言,与它们出现的顺序是有关的。
以<filter>
为例,web.xml中当然可以定义多个<filter>
,与<filter>
相关的一个配置节是<filter-mapping>
,这里一定要注意,对于拥有相同<filter-name>
的<filter>
和<filter-mapping>
配置节而言,<filter-mapping>
必须出现在<filter>
之后,否则当解析到<filter-mapping>
时,它所对应的<filter-name>
还未定义。
web 容器启动时初始化每个<filter>
时,是按照<filter>
配置节出现的顺序来初始化的,当请求资源匹配多个<filter-mapping>
时,<filter>
拦截资源是按照<filter-mapping>
配置节出现的顺序来依次调用doFilter()
方法的。
<servlet>
中的<load-on-startup>
值为正数或零时:Servlet容器先加载数值小
的servlet,再依次加载其他数值大的servlet. 当值为负或未定义:Servlet容器将在Web客户首次访问
这个servlet时加载它.