本文author:@愷龍 報錯情況 在一次使用JSP的jstl時候按照正常引入jstl和使用for each標簽出現瞭如下報錯: 分析原因 經過一番調查研究發現原因如下: JavaEE被Oracle捐獻給Apache了。目前最高版本是 JavaEE8; Apache把JavaEE換名了,以後不叫Ja ...
目錄
本文author:@愷龍
報錯情況
在一次使用JSP的jstl時候按照正常引入jstl和使用for each標簽出現瞭如下報錯:
分析原因
經過一番調查研究發現原因如下:
- JavaEE被Oracle捐獻給Apache了。目前最高版本是 JavaEE8;
- Apache把JavaEE換名了,以後不叫JavaEE了,以後叫做 jakarta EE。
- 以後沒有JavaEE了。以後都叫做Jakarta EE。
- JavaEE8版本升級之後叫做JakartaEE9
- JavaEE8的時候對應的Servlet類名是:javax.servlet.Servlet
- JakartaEE9的時候對應的Servlet類名是:jakarta.servlet.Servlet (包名都換了)
- 如果你之前的項目還是在使用javax.servlet.Servlet,那麼你的項目無法直接部署到Tomcat10+版本上。你只能部署到Tomcat9-版本上。在Tomcat9以及Tomcat9之前的版本中還是能夠識別javax.servlet這個包。
總結一下這個原因還是跟之前的"xxx cannot be cast to jakarta.servlet.Servlet "報錯本質原因一樣。
解決方法
tomcat9以前的包都用的這個:
現在就得更換這個包才能正常運行:
換成
jakarta.servlet.jsp.jstl-api-2.0.0.jar
jakarta.servlet.jsp.jstl-2.0.0.jar
這倆包然後導入就好了
網盤下載:
jakarta.servlet.jsp.jstl-api-2.0.0.jar
: https://kohler.lanzouv.com/i1l7M0h1dbad
jakarta.servlet.jsp.jstl-2.0.0.jar
:https://kohler.lanzouv.com/ibpqp0h1dbib
歡迎關註公眾號:愚生淺末。