Eclipse中Tomcat 8运行JSP报404资源未找到问题求助
我太懂这种反复踩坑的崩溃感了——折腾了上百次配置、新建项目只成功一次就又掉回404的泥潭,换谁都头疼。咱们别瞎试了,一步步拆解可能的问题:
先盯紧项目部署的基础逻辑
确认你的项目要么放在Tomcat的webapps目录下,要么在server.xml里配置了正确的Context路径。另外,JSP文件别往WEB-INF里塞——这个目录里的资源是禁止直接通过URL访问的,要放在项目根目录或者WEB-INF外的子目录里(比如webapps/MyProject/pages/index.jsp)。扒一扒Tomcat的启动日志
每次启动Tomcat后,去logs目录翻localhost.log和catalina.out,重点找部署失败的报错——比如类加载失败、web.xml标签写错、依赖缺失这些,都可能让项目看起来启动成功,但实际根本没加载进去,自然返回404。核对访问URL的每一个字符
比如你的项目部署在webapps/MyApp,那访问首页JSP的URL必须是http://localhost:8080/MyApp/index.jsp,别漏了上下文路径/MyApp。另外注意大小写——Linux环境下Tomcat对路径大小写敏感,哪怕是字母大小写错了也会触发404。清空Tomcat的缓存垃圾
Tomcat的work目录存着编译后的JSP和类文件,有时候缓存损坏会搞出莫名其妙的问题。停止Tomcat,删掉work/Catalina/localhost/你的项目名下的所有文件,重启Tomcat让它重新编译JSP,说不定就能解决。检查
web.xml的配置细节
看看welcome-file-list有没有写错文件名,或者有没有错误的Servlet映射把JSP的访问路径给冲了。比如如果给JSP配置了错误的url-pattern,或者<servlet-class>拼写错误,都会导致Tomcat找不到对应的资源。排查IDE的部署猫腻(如果用IDE开发)
很多时候IDE会把项目部署到临时目录,而不是Tomcat自带的webapps里,导致手动改了webapps的配置却没用。可以试试手动把项目打成WAR包,放到webapps目录下启动Tomcat——如果这样能正常访问,那问题肯定出在IDE的部署配置上。确认JSP与Tomcat的兼容性
Tomcat 8对应支持JSP 2.3,检查你的JSP文件有没有用更高版本的语法(比如JSP 2.4+的特性),语法不兼容会导致编译失败,进而触发404。
如果这些方法都试过还是不行,把Tomcat启动日志里的报错信息、你的项目结构截图,还有你访问的完整URL贴出来,咱们再精准定位问题。
内容的提问来源于stack exchange,提问作者Apurwa Atre

