SpringMVC - web.xml 版本踩坑 [简记]

继续后端服务系列:

不知道从哪抄来的web.xml,遇到奇怪问题折腾半天,原来版本过旧。

当然,版本太新也不行,需要根据 tomcat 或 jetty 的版本来选择 web.xml 的版本。

基本功不扎实就是处处踩坑。

Tomcat - Servlet Spec 版本对照表

来自官网:https://tomcat.apache.org/whichversion.html

Jetty - Servlet Spec 版本对照表

来自:https://wiki.shibboleth.net/confluence/display/DEV/Tomcat+and+Jetty+SameSite+Workarounds
官网:https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html

不同 Servlet Spec 版本配置 web.xml

web.xml 4.0

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xml>
<web-app
version="4.0"
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">

</web-app>

web.xml 3.1

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_3_1.xsd"
version="3.1">
</web-app>

web.xml 3.0

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

(省略过旧版本)