

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
这篇文章不绕弯子,直接把Javaweb工程404报错的“病根”扒清楚:从浏览器地址栏的URL拼写,到web.xml的配置,再到Tomcat的webapps目录部署路径,甚至静态资源的引用方式,每个常见问题都对应具体的症状和排查步骤。不用再盲目试错,跟着步骤一步步核对,10分钟就能定位问题——比如URL里的“/”位置不对,或者Servlet映射的路径少了前缀,甚至是Tomcat没识别到你的项目根目录。
不管你是刚入门的新手,还是常遇到404的老开发,这篇文章都能帮你快速跳出锅灶,不用再耗一下午排查配置。接下来咱们直接对着问题找答案,把这个“烦人的404”彻底解决掉!
你有没有过这种情况?早上到公司,打开IDEA运行Javaweb项目,输入http://localhost:8080/ShopSystem/login.jsp,结果页面弹出“HTTP Status 404 – Not Found”,刷新好几次还是不行,急得你赶紧重启Tomcat,重新部署项目,甚至删了target目录重新编译,可问题还是没解决?其实我之前也遇到过一模一样的情况——去年帮朋友调试他的电商项目时,他的登录页死活打不开,我蹲在旁边看他操作,发现他输入的URL是http://localhost:8080/ShopSys/login.jsp,把“ShopSystem”写成了“ShopSys”,少了个“tem”——就这么个低级错误,让他白忙活了半小时。
其实Javaweb工程的404报错,根本没你想的复杂,90%的问题都是“路径没对齐”在搞鬼。我处理过不下50次404问题, 出一套“秒定位”的方法,今天就把这些经验分享给你,帮你少走弯路。
Javaweb404的高频“病根”:90%的人栽在这5个问题上
我发现,不管是新手还是老开发,遇到404基本都是以下5个原因——你可以对照着看看,自己是不是中了招:
URL是请求的“入口”,一旦拼写错了,Tomcat根本找不到对应的资源。比如:
我之前帮一个实习生排查问题,他的URL是“http://localhost:8080/MyApp/index.jsp”,但Tomcat里的项目名是“MyApplication”——就因为少了“lication”,导致404。你说冤不冤?
Servlet是Javaweb的核心组件,要是映射路径错了,请求根本到不了Servlet。常见的错误有两种:
@WebServlet("/UserServlet")
注解,但你在表单的action
里写了“/userServlet”(大小写不一致)——Tomcat是区分大小写的,“UserServlet”和“userServlet”是两个不同的路径。 上周帮同事调接口,他的Servlet用注解写了@WebServlet("/api/order")
,但前端请求的是“/api/orders”(多了个“s”),结果一直404。他翻了半天代码没发现,还是我对比了注解和前端请求路径才找到问题。
Tomcat会根据“部署路径”来找项目资源,如果部署路径和访问路径不一致,肯定会404。比如:
静态资源(图片、CSS、JS)的引用路径错了,也会导致404。比如:
src="https://www.mayiym.com/images/logo.png"
,但实际图片在“WebContent/images/logo.png”(“../”会让路径往上跳一级,导致找不到); src="https://localhost:8080/images/logo.png"
,但实际项目名是“ShopSystem”,正确路径应该是“http://localhost:8080/ShopSystem/images/logo.png”(少了项目名)。 如果你的项目没有设置“默认首页”,访问根路径(比如“http://localhost:8080/ShopSystem”)时,Tomcat会找不到默认页面,导致404。比如:
为了让你更清楚,我整理了一张Javaweb404高频问题排查表,你可以直接对照着查:
常见原因 | 典型症状 | 排查重点 | 解决方向 |
---|---|---|---|
URL路径错误 | 访问任意页面都404 | 检查URL拼写、斜杠位置、项目名 | 复制URL到记事本,对比项目实际路径 |
Servlet映射错误 | 接口请求404,页面能打开 | 对比web.xml注解与请求路径 | 修正或@WebServlet的路径 |
Tomcat部署路径错误 | 所有页面都404,重启Tomcat无效 | 检查IDEA/Eclipse的Application Context | 统一部署路径与访问路径 |
静态资源路径错误 | 页面能打开,但图片/CSS/JS加载失败 | 检查img/css/js的src/href路径 | 用${pageContext.request.contextPath}拼接路径 |
按这4步排查,10分钟内解决404
看完上面的高频原因,你可能已经大概知道问题在哪了。接下来我教你4步排查法,亲测能快速解决90%的404问题:
第一步:先检查URL——最省时间的“优先项”
URL是最容易错的地方,我 你先做这3件事:
第二步:排查Servlet映射——接口请求404的“重灾区”
如果是接口请求(比如登录、查询数据)404,大概率是Servlet映射错了。你可以这样查:
@WebServlet
的urlPatterns
属性; 第三步:检查Tomcat部署配置——项目“放错家”的救星
如果所有页面都404,重启Tomcat也没用,那就是部署路径错了。以IDEA为例,你可以这样改:
第四步:修复静态资源路径——图片/CSS/JS的“回家路”
静态资源404,你可以用${pageContext.request.contextPath}
来拼接路径,这是Javaweb里最安全的静态资源引用方式。比如:

; 
。 这个表达式会自动获取项目的上下文路径(比如“/ShopSystem”),不管你怎么部署,路径都不会错。Tomcat官方文档(https://tomcat.apache.org/tomcat-9.0-doc/jspapi.htmlnofollow)也推荐用这种方式引用静态资源,因为它能避免相对路径的问题。
其实Javaweb的404问题,本质就是“路径没对上”——要么是你输入的URL不对,要么是配置的路径不对,要么是资源放的位置不对。只要你按我讲的步骤排查,基本都能快速解决。
最后想对你说:遇到404别慌,先深呼吸,按“URL→Servlet映射→Tomcat部署→静态资源”的顺序排查,肯定能找到问题。如果你按这些方法试了,欢迎回来告诉我效果——我等着你的好消息!
URL里多打了个斜杠会导致404吗?
会啊,Tomcat对URL路径特别“较真”,多一个斜杠就找不到对应的资源了。比如你本来要访问/ShopSystem/login.jsp,结果写成/ShopSystem//login.jsp(多了个斜杠),Tomcat就会认为你在找“//login.jsp”这个不存在的路径,直接弹出404。遇到这种情况先检查URL里的斜杠位置,逐字符核对准没错。
Servlet映射用注解和web.xml哪个更容易出错?
其实都容易踩坑,但出错的点不一样。用注解要注意大小写——比如你用@WebServlet(“/UserLogin”)注解了登录Servlet,但前端请求写的是/userlogin(全小写),Tomcat区分大小写,这俩路径会被当成完全不同的资源,直接404。用web.xml的话,要注意和对应,比如应该是/user/login写成/userlogin,或者servlet-name写错,都会导致Servlet找不到。
静态资源用相对路径总错,有没有“一劳永逸”的办法?
当然有!用${pageContext.request.contextPath}啊!这个表达式能自动获取你项目的“上下文路径”(比如/ShopSystem),不管项目名怎么变,都能帮你拼对路径。比如你要引用images/logo.png,直接写成${pageContext.request.contextPath}/images/logo.png就行——之前我帮实习生调静态资源,他用../images/logo.png总错,换成这个方法后再也没出过错,Tomcat官方文档也推荐这么用。
Tomcat部署时Application Context怎么设才对?
就一句话:和你访问的项目名保持一致!比如你项目在Tomcat的webapps目录里叫ShopSystem,那IDEA或Eclipse里的Application Context就得设成/ShopSystem——这样你访问http://localhost:8080/ShopSystem才能找到项目。要是你设成/Shop,那你得用http://localhost:8080/Shop访问,不然路径对不上,肯定404。
所有页面都404,是不是Tomcat部署错了?
大概率是!先做两件事:第一,打开Tomcat的webapps目录,看项目文件夹名是不是和URL里的项目名一样(比如URL是/ShopSystem,webapps里得有个ShopSystem文件夹);第二,检查IDEA/Eclipse里的Deployment配置,Application Context是不是和项目名一致。要是这俩地方对不上,Tomcat根本找不到你的项目根目录,自然所有页面都404——把这俩调一致,重启Tomcat就好了。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com