Web 應用常需在異常發生時自動跳轉至友好錯誤頁。JSP 提供頁面指令與 web.xml 兩種配置方式,本文詳細說明實現步驟與驗證。
errorPage 屬性指定跳轉目標isErrorPage="true" 標識,可獲取 exception 隱式對象errorPage.jsp<%@ page language="java" pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head><title>系統錯誤</title></head>
<body>
<h1>程序出現異常,請聯系管理員處理!</h1>
<!-- 可通過 exception 對象顯示詳情 -->
<pre><%= exception != null ? exception.getMessage() : "未知錯誤" %></pre>
</body>
</html>
<%@ page errorPage="errorPage.jsp" %>
<%-- 頁面業務代碼,拋出異常時自動跳轉 --%>
適用於統一處理 HTTP 錯誤碼 (404/500) 與特定異常類型:
<error-page>
<error-code>500</error-code>
<location>/error/errorPage.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/errorPage.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error/errorPage.jsp</location>
</error-page>
https://localhost:8080/xxx.jsp → 觸發 404 跳轉NullPointerException → 觸發異常類型匹配跳轉errorPage 優先級高於 web.xml 全局配置
@ControllerAdvice + @ExceptionHandler 統一異常處理,更靈活強大