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
。