0%

Servlet实例化异常解决办法

问题复现

系统环境:IDEA 2021.2,Tomcat 10

在IDEA中配置好Servlet文件路径,项目结构如下:

Tomcat配置如下:

以ch07_8_tijiao.jsp为例,运行后第一个界面显示正常

但当输入2个数据并点击提交后,servlet出现实例化异常

问题解决

项目结构’web-lib’中导入Tomcat的Tomcat-api.jar包以及servlet-api.jar包,并导入进项目库中

如果Tomcat版本为10.0以下时,做完上面步骤问题消失,可以正常运行,
但当Tomcat版本为10.0时,仍然会显示实例化异常,
根本原因是Tomcat 10的servlet-api中并非旧版本的javax.servlet,而是jakarta.servlet,
此时需要将项目src目录下的java源文件中import javax.servlet全部改为jakarta.servlet,保存后即可正常运行

源代码:

1
2
3
4
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

修改后:

1
2
3
4
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;