对web.xml配置文件稍加分析,总结一下经常使用的标签。
先整理一下web.xml的加载过程
Web.xml加载过程如下图:
Web.xml配置文件的总结(一)
当容器(服务器)启动时,会先读取web.xml配置文件中的配置,当web.xml不出错的时候,项目才能被启动,否则服务器的启动就会报错。
1, 服务器启动后,会去web.xml中寻找两个标签,分别是<context-param 和<listener。
2, 然后容器会创建一个ServletContext,这个web项目整体将共享这个上下文。这点我觉得很重要,等同于是告知接下来的项目,这里有一个共享的使用工具。
3, 容器将<context-param中的name,value以键值对的形式放入ServletContext中
4, 容器随后创建listener实例,根据linsener-class类路径来监听,监听中有ContextInitialized(args)初始化方法,项目启动时会调用此方法,然后获得<context-param的值,然后进行操作。
5, 然后容器读取filter,根据指定的类路径来实例化过滤器。
6, 以上五个步骤,都是在项目未完全启动时就已经完成的工作,如果出现相同的标签,按照配置文件的顺序进行服务,在此之后才开始实例化servlet。

Web.xml中标签的作用:
1,<context-param有一对参数名和参数值,用来作为servlet上下文初始化参数。参数名在web项目中是唯一的,和map中的key一样。
2,<listener用来配置一个监听器。用来监听各种事件,例如最重要的两个事件:
Application和Session
监听项目的启动和关闭,监听session的启动和关闭。
<listener可以用于spring配置。
3,<filter过滤器。在request和response进行操作。
<filter-mapping声明web项目中的过滤器映射,作用于servlet上或者映射到一个URL上,可以过滤访问的任何资源。

配置Spring:
1在web.xml中配置spring,必须<listener标签,如果没有<context-param标签,会默认路径是WEB-INF/application.xml,必须在WEB-INF目录下创建一个名为applicationContext.xml配置文件。
2如果指定了applicationContext.xml的地址信息,则不会去找WEB-INF目录下的applicationContext.xml
3如果在src下创建applicationContext.xml配置文件,则要写<context-param,告知spring工厂需要的配置文件的地址在哪里。
Web.xml配置文件的总结(一)
4如果自定义文件名,则要在contextConfigLocation下的<param-value标签中说明。
如果有多个配置文件,则用“,”隔开。

相关文章: