前几天,在使用IDEA导入一份WAR包时,类文件中代码段

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

.servlet产生错误

通过IDEA的错误分析得知错误发生的原因是无法解析符号‘servlet’

也就是没有找到javax.servlet包

由于本机所用Tomcat是10.0.20版本,WAR包所用版本为Tomcat9之前版本,所以推测是由于Tomcat版本不一致导致的兼容性问题。

通过查阅Tomcat官网发现以下一段话

简单翻译过来就是Tomcat10及以上版本取消了对javax包名的使用,以jakarta代替。

这就解释了为什么会找不到java.servlet这个包,因为库里面压根没这个包的名称路径

回到错误发生的类中,将javax批量替换成jakarta

 编译运行无错误,问题解决!