一、问题描述:
运行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>内粘贴,替换掉之前的版本即可