2.1.2 配置描述符web.xml
2.1.2 配置描述符web.xml
上一节介绍的位于每个web应用的WEB-INF路径下的web.xml文件被称为配置描述符,这个web.xml文件对于Java Web应用十分重要,在Servlet2.5规范之前,每个JavaWeb应用都必须包含一个web.xml文件,且必须放在WEB-NF路径下。
从Servlet3开始,WEB-INF路径下的web.xml文件不再是必需的,但通常还是建议保该配置文件.
WEB-INF
对于Java Web应用而言,WEB-INF是一个特殊的文件夹,Web容器会包含该文件夹下的内容,客户端浏览器无法访问WEB-INF路径下的任何内容.
在Servlet2.5规范之前,JavaWeb应用的绝大部分组件都通过web.xml文件来配置管理,从Servlet3开始,也可通过注解来配置管理Web组件,因此web.xml文件可以变得更加简洁,这也是Servlet3的重要简化。接下来讲解的内容会同时介绍两种配置管理方式。
- 配置
JSP - 配置和管理
Servlet - 配置和管理
Listener - 配置和管理
Filter - 配置标签库
- 配置
JSP属性。
除此之外,web.xml还负责配置、管理如下常用内容:
- 配置和管理
JAAS授权认证。 - 配置和管理资源引用。
Web应用首页。
web.xml文件根元素
web.xml文件的根元素是<web-app>元素,在Servlet3规范中,该元素新增了如下属性:
metadata-complete:该属性接受true或false两个属性值。当metadata-complete属性值为true时,该Web应用将不会加载注解配置的web组件(如Servlet、Filter、Listener等)。
配置首页
在web.xml文件中配置首页使用welcome-file-list元素,该元素能包含多个welcome-file子元素,其中每个welcome-file子元素配置一个首页。例如,如下配置片段:
上面的配置信息指定该Web应用的首页依次是index.html、index.htm和index.jsp,意思是说:
- 当
web应用中包含index.html页面时,如果浏览者直接访问该web应用,系统将会把该页面呈现给浏览者; - 当
index.html页面不存在时,则由index.htm页面充当首页,依此类推。
Web容器提供的web.xml文件
每个web容器都会提供一个系统的web.xml文件,用于描述所有web应用共同的配置属性。例如:
Tomcat的系统web.xml放在Tomcat的conf路径下,Jetty的系统web.xm文件放在Jetty的etc路径下,文件名为webdefault.xml。