一般有两种原因:
1.web.xml版本太低不支持注解
2.servlet.jar版本太低,里面的接口失效(命名空间从 javax 变成了 jakarta)
(大部分都是这个原因,tomcat 10 以前版本为javax , tomcat 10 为jakarta)
解决方法:
1.修改web.xml的version至少3.0以上
2.检查web.xml中
metadata-complete="false"
metadata-complete="true"表示仅支持配置映射
metadata-complete="false"表示支持配置映射和注解映射
3.如果发现以上修改均无用,但是配置web.xml文件的映射路径后可以打开路径,然后报错提示找不到类,则是第二种原因
在pom.xml文件的<dependencies>标签里换用
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency>
并修改servlet类即可