本文主要是介绍Tomcat与Servlet加载问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Tomcat与Servlet、JSP、JDK的版本适配问题(解决访问出现404和500的问题)
在Tomcat的官网中,我们可以看到不同版本的Tomcat适配的JDK、Servlet、Jsp以及EL的版本,如下:
由于我使用的是Tomcat10.0.12的版本,而我使用Maven导入的依赖如下
javax.servlet
javax.servlet-api
4.0.1
javax.servlet.jsp
javax.servlet.jsp-api
2.3.2-b01
这将导致Tomcat版本无法兼容Servlet版本(tomcat10将JavaEE更换成了Jakarta® EE,所以原Servlet包"javax.servlet.“更改成了"jakarta.servlet.”),我们在500的图中根本原因的第一行也可以看到:Register cannot be cast to class Jakarta.servlet.Servlet,即我使用的是Servlet是javax包里的,而Tomcat能够识别(适配)的是Jakarta包里的,而javax包里的Servlet类无法转换为Jakarta包里的Servlet类,所以显示了例外情况里的第一行:类cn.ken.controller.Register不是Servlet。
三、解决方法
既然是由于Tomcat版本与Servlet版本不匹配造成,那么自然就有对应的两种解决方法
1、降低Tomcat版本
因为tomcat10才改成Jakarta,故只需将Tomcat版本降低到10以下,例如Tomcat9等。
当然还要结合具体情况进行分析,让使用的Tomcat版本能够匹配自己使用的JSP或
这篇关于Tomcat与Servlet加载问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!