JSP 应用一旦出现 404、403 或 500,用户看到的往往只是默认报错页,既不利于体验,也不方便运维排查。要把这件事处理好,关键就两步:在 Tomcat 的 web.xml 里接管错误页面,再通过日志配置把异常细节留下来。
下面以 Debian 环境为例,从安装依赖、配置错误页、调整日志到最终验证,顺着一套可以直接落地的流程讲清楚。你看完后可以判断自己的应用是否已经具备“用户看得懂、管理员查得到”的基本错误处理能力。
安装必要软件包
开始前,先确认系统中已经安装 Apache Tomcat 和 JDK。如果环境还没准备好,可以直接执行:
sudo apt update
sudo apt install tomcat9 default-jdk这里保留了最常见的 Debian 安装方式,适合快速搭建测试或基础生产环境。
在 web.xml 中配置 JSP 错误页面
JSP 错误处理的核心,是让 Tomcat 根据不同的 HTTP 状态码跳转到你定义的页面。这样用户不会再直接看到生硬的默认报错信息。

编辑 WEB-INF/web.xml
进入当前 Web 应用的 WEB-INF/web.xml,加入或调整为类似配置:
404
/error/404.jsp
500
/error/500.jsp
403
/error/403.jsp
这段配置的作用很直接:
404对应资源不存在时显示404.jsp500对应服务端异常时显示500.jsp403对应禁止访问时显示403.jsp
如果你的站点还有更细的错误处理要求,也可以继续补充其他状态码映射。
创建对应的 JSP 错误页
只写映射还不够,目标文件本身也要存在。按文中的路径,需要在 Web 应用的 /WEB-INF/ 目录下准备这些 JSP 文件:
/WEB-INF/error/404.jsp/WEB-INF/error/500.jsp/WEB-INF/error/403.jsp
这些页面通常不需要复杂逻辑,重点是给出清晰提示,例如“页面未找到”“没有访问权限”或“服务器内部错误”,并附上返回首页的链接或继续操作入口。
需要注意的是,映射里写的是 /error/404.jsp 这类位置,因此你的项目目录结构和部署路径要保持一致,否则 Tomcat 找不到对应页面时,仍可能回落到默认错误表现。
配置 Tomcat 日志记录
自定义错误页解决的是“用户看见什么”,日志配置解决的是“你如何定位问题”。尤其是 500 错误,没有日志通常很难快速判断是 JSP 语法、业务代码还是容器配置导致的。

编辑 logging.properties
找到 Tomcat 的 conf/logging.properties 文件,根据需要调整日志级别和输出方式。文中给出的示例如下:
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = ja va.util.logging.ConsoleHandler这两行配置表示:
- 把
[Catalina].[localhost]这一级别的日志详细度提升到FINE - 通过
ja va.util.logging.ConsoleHandler输出到控制台,便于调试时直接查看
如果你在线上环境使用这组设置,需要结合日志量和采集方式评估是否合适;调试阶段更详细的日志有帮助,但生产环境通常还会搭配统一日志管理策略。
重启 Tomcat 使配置生效
修改完 web.xml 和日志配置后,需要重启 Tomcat 才会加载新的设置:
sudo systemctl restart tomcat9这一步很容易被忽略。如果你发现页面和日志都没有变化,先检查服务是否已经按预期重启,以及当前运行的是否就是你改动过的那套配置。
验证 404 和 500 是否按预期工作
配置完成后,最好不要停留在“理论上已经生效”,而是做一次最小验证。
测试 404 页面
先访问一个不存在的 URL,例如:
http://your-server-address/nonexistent-page如果配置正确,浏览器应显示你自定义的 404.jsp 内容,而不是 Tomcat 默认的 404 页面。
测试 500 错误处理
接着可以人为触发一个 500 错误,例如在某个 JSP 中制造异常,确认两件事是否同时成立:
- 前台展示的是你定义的
500.jsp - 后台日志里能看到足够定位问题的异常信息
如果这两项都正常,说明当前这套 JSP 错误处理链路已经完整打通。
最后检查一遍关键点
在 Debian 上配置 JSP 错误处理,真正要落地的内容并不多,关键是把几个环节串起来:
- Tomcat 和 JDK 已安装
WEB-INF/web.xml中已声明 403、404、500 的- 对应的 JSP 错误页文件已经创建
conf/logging.properties已按需要调整- Tomcat 已重启并完成实际访问测试
做到这些后,JSP 应用遇到常见错误时,既能向用户返回更友好的页面,也能给维护人员留下足够的排障线索。







