使用NetBeans开发Java Web应用时遭遇HTTP 404 Not Found错误求助
嘿,我之前在NetBeans里折腾Java Web项目的时候也碰到过一模一样的404问题,给你梳理几个最可能的排查方向,应该能帮你解决:
一、先确认访问URL与项目部署路径匹配
NetBeans默认会把项目名称作为Web应用的上下文路径,比如你的项目叫JavaWebCRUD,那正确的访问前缀应该是http://localhost:8080/JavaWebCRUD/,千万别直接访问http://localhost:8080/你的页面.html——这是新手最容易踩的坑。
- 你可以右键项目 → 选择「属性」→ 切换到「运行」标签页,就能看到当前的上下文路径,把它拼到URL前面再访问试试。
二、检查静态文件的存放位置
Java Web项目里,HTML、CSS这类静态资源必须放在指定目录:
- 普通Web项目:放在
WebContent根目录下,不能塞到src源码文件夹里,否则部署时不会被打包到war包,自然访问不到; - Maven项目:要放在
src/main/webapp目录下。
举个例子,如果你的Add New.html直接放在WebContent根目录,访问路径就是http://localhost:8080/上下文路径/AddNew.html(建议把文件名里的空格去掉,避免URL转义问题)。
三、排查Servlet映射的正确性
既然你的项目有增删改操作,肯定用到了Servlet,这也是404高发区:
- 如果用注解配置Servlet,要确保
@WebServlet的urlPatterns没写错:
@WebServlet("/addUser") public class AddUserServlet extends HttpServlet { // 你的业务代码 }
对应的访问路径就是http://localhost:8080/上下文路径/addUser;
- 如果用
web.xml配置映射,要保证<servlet>和<servlet-mapping>的名称完全对应,url-pattern路径正确:
<servlet> <servlet-name>AddUserServlet</servlet-name> <servlet-class>com.yourpackage.AddUserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddUserServlet</servlet-name> <url-pattern>/addUser</url-pattern> </servlet-mapping>
四、确认项目是否成功部署到服务器
- 启动Tomcat后,去Tomcat安装目录下的
webapps文件夹看看,有没有你的项目文件夹(或者war包),如果没有,说明NetBeans部署失败了,右键项目 → 「清理并构建」后再重新部署; - 也可以在NetBeans的「服务」窗口里,展开Tomcat服务器,看看你的项目是不是显示「已部署」状态,如果是红色叉号,右键Tomcat → 「查看日志」,里面会有具体的部署错误信息。
关于你提供的HTML代码小提醒
你贴的代码没写完,先提两个小细节:
<meta charset="...要补全成<meta charset="UTF-8">,避免后续出现中文乱码;- 如果HTML里有表单提交到Servlet,
action属性的路径要和Servlet的映射一致,比如:
<form action="addUser" method="post"> <!-- 表单元素 --> </form>
如果用绝对路径的话要写成/上下文路径/addUser。
内容的提问来源于stack exchange,提问作者user8705895




