目录
前言
今天运行jsp项目时,一直报这个错误,在网上找的教程后,我总结一下,就是Tomcat的版本有问题。
一、原因
tomcat10中的javax.servlet-api 已经变成 jakarta.servlet-api了,与在pom.xml里面添加的依赖不匹配,导致服务器无法实例化servlet类。
二、解决方法
1.导入jar包
jakarta.servlet.jsp.jstl-2.0.0.jar
jakarta.servlet.jsp.jstl-api.2.0.0.jar
servlet-api.jar在Tomcat安装目录下的lib文件夹内
standard.jar如果你想在项目中使用JSTL和EL表达式,那么你必须要引入这个standard.jar文件。
2.添加依赖
先删除:
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
再添加:
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
</dependency>
总结
tomcat10中的javax.servlet-api 已经变成 jakarta.servlet-api了,在pom.xml里面添加jakarta.servlet-api依赖,去掉javax.servlet-api依赖。
或者不使用tomcat10,换成tomcat9或者更早的版本。