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:该属性接受truefalse两个属性值。metadata-complete属性值为true时,该Web应用将不会加载注解配置的web组件(如ServletFilterListener等)。

配置首页

web.xml文件中配置首页使用welcome-file-list元素,该元素能包含多个welcome-file子元素,其中每个welcome-file子元素配置一个首页。例如,如下配置片段:

上面的配置信息指定该Web应用的首页依次是index.htmlindex.htmindex.jsp,意思是说:

  • web应用中包含index.html页面时,如果浏览者直接访问该web应用,系统将会把该页面呈现给浏览者;
  • index.html页面不存在时,则由index.htm页面充当首页,依此类推。

Web容器提供的web.xml文件

每个web容器都会提供一个系统的web.xml文件,用于描述所有web应用共同的配置属性。例如:

  • Tomcat的系统web.xml放在Tomcatconf路径下,
  • Jetty的系统web.xm文件放在Jettyetc路径下,文件名为webdefault.xml