配置 web.xml 部署描述符

将 Java 应用部署到包含 Eclipse Jetty 9/ servlet 3 服务器的运行时时,才会用到 web.xml 文件。如需了解详情,请参阅 Eclipse Jetty 9.3 运行时

Java 网页应用使用部署描述符文件来确定如何将网址映射到 servlet、哪些网址需要身份验证以及其他信息。该文件的名称为 web.xml,位于应用 WAR 的 WEB-INF/ 目录下。web.xml 是 Web 应用的 Servlet 标准的一部分。

如需详细了解 web.xml 标准,请参阅 Servlet 规范

关于部署描述符

网页应用的部署描述符描述了应用的类、资源和配置,以及网络服务器如何使用它们处理网络请求。当网络服务器收到应用请求时,它使用部署描述符将请求网址映射到应处理该请求的代码。

部署描述符是一个名为 web.xml 的文件。它位于应用 WAR 的 WEB-INF/ 目录下。文件是一个根元素为 <web-app> 的 XML 文件。

下面是 web.xml 的一个简单示例,可将所有网址路径 (/*) 映射到 Servlet 类 =mysite.server.ComingSoonServlet

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>comingsoon</servlet-name>
        <servlet-class>mysite.server.ComingSoonServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>comingsoon</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

Servlet 和网址路径

web.xml 定义网址路径与通过这些路径来处理请求的 servlet 之间的映射。Web 服务器使用该配置确定 Servlet 以处理给定请求,以及调用对应于请求方法(如 HTTP GET 请求的 doGet() 方法)的类方法。

要将网址映射到 Servlet,您需要用 <servlet> 元素声明 Servlet,然后通过 <servlet-mapping> 元素定义从网址路径到 Servlet 声明的映射。

<servlet> 元素会声明 Servlet,包括文件中的其他元素用于引用 Servlet 的名称、用于 Servlet 的类以及初始化参数。您可以使用具有不同初始化参数的同一类声明多个 servlet。每个 servlet 的名称在部署描述符中必须是唯一的。

    <servlet>
        <servlet-name>redteam</servlet-name>
        <servlet-class>mysite.server.TeamServlet</servlet-class>
        <init-param>
            <param-name>teamColor</param-name>
            <param-value>red</param-value>
        </init-param>
        <init-param>
            <param-name>bgColor</param-name>
            <param-value>#CC0000</param-value>
        </init-param>
    </servlet>

    <servlet>
        <servlet-name>blueteam</servlet-name>
        <servlet-class>mysite.server.TeamServlet</