该错误是由于 jar 包冲突引起,在 Tomcat 中 servlet 和 jsp 的 jar 包和使用 maven 导入的 jar 包产生了冲突。
【解决方法】
①将pom.xml中以下代码删除,即不使用 maven 中的 jar 包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
!!注意
- 查看 tomcat 中是的 lib 中是否带有 jstl 的 jar 包,若没有会报相同错误
需要自行添加. - 如果项目中有多个pom.xml,以上代码都要删掉。我就是没有注意这一点导致一直无法成功.
上图框着的第二个我这里是需要自己去下载复制进去的。(文末有下载方式)
【更新一个方法②】
设置他们的范围只能在编译和测试中。(可以先试试这个方法看看是否可行)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
③我尝试使用另外的方式,即使用 maven 导入的 jar 包,删除了 tomcat 的 jsp-api 和 servlet-api,但无法运行项目,但在其他博客中看到有这种解决方式(不知是不是做错了哪一步)
【关于 jstl-1.2.jar 的下载方式】
下载 jar 包的地址:
https://mvnrepository.com/
自己有需要的 jar 包都可以在上面找,以下为操作步骤.