首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 錯誤處理機制:page 指令配置錯誤頁與異常對象捕獲

     編輯:關於JSP

JSP 內建聲明式錯誤處理機制,通過 page 指令配置錯誤頁,自動捕獲未處理異常並轉發至指定頁面展示友好提示,避免暴露堆棧信息給用戶。

核心配置雙指令

頁面類型指令屬性說明
主業務頁errorPage="errorpage.jsp"發生異常時轉發的目標錯誤頁路徑
錯誤頁isErrorPage="true"聲明當前頁為錯誤處理頁,啟用 exception 內置對象

完整實例

1. 業務頁(拋出異常)

<%@ page errorPage="errorpage.jsp" %>
<html><head><title>JSP Error Demo</title></head><body>
<h1>JSP 1.0 Error Page Demo</h1>
<% 
String s = null;
s.getBytes(); // 故意拋出 NullPointerException
%>
</body></html>

2. 錯誤頁(捕獲異常)

<%@ page isErrorPage="true" %>
<html><body bgcolor="black" text="#FFFFFF">
<h1>Attention: The following error occurs</h1><br>
<pre><%= exception.getMessage() %></pre>
<!-- 可進一步記錄 exception.printStackTrace() 到日誌 -->
</body></html>

運行流程

  1. 業務頁拋出未捕獲異常。
  2. 容器檢測到 errorPage 配置,構建包含 exception 對象的請求。
  3. 請求轉發至錯誤頁(非重定向,保持原 URL)。
  4. 錯誤頁通過 exception 內置對象獲取異常信息展示/記錄。

進階:web.xml 全局錯誤頁配置

<error-page>
  <exception-type>java.lang.Exception</exception-type>
  <location>/global-error.jsp</location>
</error-page>
<error-page>
  <error-code>404</error-code>
  <location>/404.jsp</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/500.jsp</location>
</error-page>

優先級:頁面級 errorPage > 全局 error-page。生產環境建議配置全局 404/500 頁面。

最佳實踐

  • 錯誤頁不輸出堆棧給用戶,記錄到日誌系統(Log4j/SLF4J)。
  • 返回友好提示,提供返回首頁/重試鏈接。
  • 區分業務異常(可預期)與系統異常(需告警)。
  • 生產環境關閉詳細錯誤信息輸出,防止信息洩露。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved