Charming 的博客

标准的 Servlet web.xml 配置

标准的 Servlet web.xml 配置究竟怎么写?Servlet 2.5、Servlet 3.0、Servlet 3.1、Servlet 4.0 的 web.xml 有什么不同?困惑我许久的问题终于在一次安装 Tomcat 的时候找到了。

Google Tomcat GitHub 就能找到 Tomcat 各个版本的源代码,其中 Servlet 程序示例中的 web.xml 就是标准的配置。

Servlet 3.1

建议使用 Tomcat 8.0.x 运行的项目使用此 web.xml 配置。

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<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" metadata-complete="true">
...
</web-app>

Servlet 3.0

建议使用 Tomcat 7.0.x 运行的项目使用此 web.xml 配置。

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="true">
...
</web-app>

Servlet 2.5

建议使用 Tomcat 6.0.x 运行的项目使用此 web.xml 配置。

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
...
</web-app>

Servlet 4.0

建议使用 Tomcat 9.0.x(正式版未发布)运行的项目使用此 web.xml 配置。

1
2
3
4
5
6
<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_4_0.xsd"
version="4.0" metadata-complete="true">
...
</web-app>

参考链接