一、常见404 500错误解析

- 浏览器:用户发起请求的入口,地址栏输入 URL、AJAX 请求都从这里发。
- 服务器:本质就是一台电脑,Tomcat 在这里负责接收请求、分发处理。
- 前端层:存放静态页面,处理页面渲染、用户交互。
- 后台层:Servlet 接收请求、处理业务逻辑、调用数据库。
- 数据库:存储数据,通过 JDBC 和后台交互。
404错误和500错误总体如图:

(1)404错误
常见的404错误有两种,一种是在页面上直接显示404错误,另一种是在控制台报404错误,如图所示:
情况1:浏览器地址栏输入 URL,直接访问服务器上的静态资源(xxx.html),服务器找不到文件 → 页面直接显示 404。

问题本质:
主请求(地址栏的 URL)失败了,服务器根本没找到你要访问的资源。
常见原因:
**核对 URL:**项目上下文路径、文件名是否和实际一致。
检查文件位置: 确认文件在 webapp/ 或 resources/static/ 下。
**看 Tomcat 日志:**是否有文件找不到的警告。
情况二:主页面加载成功了(主请求 200),但页面里的 AJAX 请求 / 资源请求失败,控制台报 404 → 主页面正常,部分功能失效。

问题本质:
主请求成功(200),但页面里的附属请求失败了。
常见原因:
**页面里的资源路径错误:**图片、css、js 文件的相对路径 / 绝对路径写错,服务器找不到。
**AJAX 请求的后端接口路径错误:**Servlet 的 urlPatterns 和前端请求的地址不匹配。
**跨域问题:**前端请求的地址和服务器端口 / 域名不一致,导致请求被拦截(也可能报 404)。
(2)500错误

服务器收到了请求,但处理时出错了:

问题本质:
服务器内部错误,请求到了后台代码里,但代码执行报错了。
常见原因:
Servlet 代码报错:空指针异常、数组越界、类型转换错误等 Java 代码异常。
**数据库连接失败:**JDBC 配置错误(URL、账号密码写错)、MySQL 没启动、驱动版本不兼容。
**SQL 语句错误:**SQL 语法写错、表名 / 字段名错误、参数不匹配。


