点击表单提交按钮返回404 Not Found,Servlet无法运行如何解决?
修复方案
- 修正包名错误
打开RegisterServlet.java,第一行包名声明多了非法空格:
错误写法:package com. practice;
修正为:package com.practice;
该错误会导致编译后的Servlet类路径和web.xml中配置的servlet-class不匹配,Servlet容器找不到对应类就会返回404。
- 修正包名错误
- 确认部署路径匹配
如果你部署的项目有自定义上下文路径(比如访问首页的地址是http://localhost:8080/xxx/index.html,xxx即为上下文路径),可以将index.html中form的action属性改为带上下文路径的写法:
<form id="myform" action="/xxx/RegisterServlet" method="post">- 确认部署路径匹配
- 检查服务器版本兼容
如果你使用的是Tomcat 10及以上版本,原有javax.servlet相关依赖已经全部迁移到jakarta.servlet命名空间,需要将代码中所有import javax.servlet.*改为import jakarta.servlet.*,或者将服务器降级到Tomcat 9及以下版本。
- 检查服务器版本兼容
- 清理缓存重新部署
修改代码后要清理项目编译缓存,重新打包部署到服务器,启动时查看控制台日志是否有类找不到、Servlet注册失败的报错,确认无异常后再测试表单提交。
- 清理缓存重新部署
内容的提问来源于stack exchange,提问作者Vaishnavi Chaurasia
相关产品推荐
相关产品推荐

