j2ee容器对象加载顺序及优先级概述

一、概述

web容器中,主要以三个容器对象的生命周期为导向,分别为:Listener/Filter/Servlet。总体概图如下:

同时,还存在着这样一种配置节点:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,,加载顺序如下图:

①、加载Servlet时,分两种情况:启动时加载、懒加载。

启动时加载 只需在配置Servlet的时候加上节点<load-on-startup>1</load-on-startup>,其中,值越小,优先级越高。(特别注意:最小值为0,负值时认为是懒加载)懒加载 即容器完成启动,响应对应第一次请求时对指定的Servlet进行初始化。对应启动加载情况,如果没有配置节点信息(load-on-startup)或者改节点信息为负值时对应懒加载。

②、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() 方法的。

③、Listener

web.xml 中声明的先后顺序即为加载顺序。

如果可以,我真想和你一直旅行。或许是某个未开发的荒凉小岛,

j2ee容器对象加载顺序及优先级概述

相关文章:

你感兴趣的文章:

标签云: