【上图使用的tomcat版本为10.0.23】
此问题目前出现在Tomcat10系列 ,而 Javax.servlet.*标红(不存在)的原因是因为包名改了。
// Tomcat 10 用以下的 import
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
//----------------------------------------
// Tomcat 9 用以下的 import
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//----------------------------------------
所以由此可知Tomacat 10 之后servlet依赖包名不是 javax.servlet,而是jakarta.servlet。
如果你用eclipse的话还可能会出现运行出500的错误。
出现这个问题的原因是tomcat的版本太新了,tomcat10的不支持老版的jar包
解决方案一
降级tomcat,用回老版(jdk,maven,tomcat不用新版能减少90%的错误)
解决方法二
换一下jar包【jar包的替换如果可以请大佬在评论区发一个教程链接】
所以如果想使用tomcat10开发,必须更新jar和jsp包等。。
会很麻烦,建议装上一个半年版本,版本不是越新越好。
Eclipse IDE for Eclipse Committers ,目前最高适配支持tomcat8
Eclipse IDE for Java EE Developers,可以适配运行tomcat9
目前不要装tomcat 10.1.1,eclipse并不支持高版本的运行。会爆出如下错误。
The Apache Tomcat installation at this directory is version 10.1.1. A Tomcat 10.0 installation is expected.