Tomcat10以上版本 与 JDK、Servlet、Jsp 版本不一致的问题

一、问题描述:

     运行JavaWeb项目但一跳转到servlet页面就出现了404错误,且相关url地址和配置文件都一致却依旧报错

  (报错)

如下图:在jsp文件中提交表单后会跳转到UserServlet页面

(login.jsp

(servlet包下的UserServlet.java

二、相关原因:

        1、有可能是因为你的tomcat过新(尤其10及以上版本)与JDK、Servlet、Jsp的版本不适配。

        比如,当我的tomcat版本为11,而我导入的servlet、jsp的依赖版本过低(如下图),就会出现上述404问题。

        根据上面的表格可知,tomcat10都需要至少6.0版本servlet和3.1版本的jsp。

        更别说tomcat 11 还用这么低的版本了,肯定会出现不适配的问题

   

       

2在tomcat10版本以后,不能再使用 ”javax.servlet” 导入Servlet包了,取而代之的是 ”jakarta.servlet” 。

三、解决方法:

方法1、降低tomcat版本

       可以改为使用tomcat 9,这样就不需要用 “jakarta.servlet” 来导入Servlet包了。根据版本表来看,图中的servlet和jsp版本也不需要再更改。

        这显然是最简单但是也最麻烦的步骤。这里就不做演示。

方法2、第一步:提高Servlet和Jsp版本

       https://mvnrepository.com/

       根据前面那张版本表,在这个网站中寻找与你当前使用的tomcat匹配的版本。

      

依旧拿tomcat 11来举例导入servlet(jsp同理)。步骤如下:

  • 进入网址,在导航栏中输入 tomcat-servlet-api

  • 点击第一个搜索结果

  • 寻找合适的版本,这里我选的10.1.25的版本

 (往下划

  • 点击然后复制

  • 在web项目中的pom.xml文件中的标签<denpendencies></dependencies>内粘贴,替换掉之前的版本即可

方法2、第二步:将导入Servlet包的 ”jakarta.servlet” 全部更改为 “Jakarta.servlet”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值