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

Tomcat 錯誤頁面在 IE/Edge 顯示 500 而非自定義頁面的解決方法

     編輯:程式設計綜合問答

現象

JSP 設定 `<%@ page errorPage="ErrPage.jsp" %>`,Chrome 正常顯示自定義錯誤頁,IE/Edge 卻顯示瀏覽器內建的「友好 HTTP 錯誤訊息」或 500 頁面。

根因

IE/Edge 預設啟用「顯示友好 HTTP 錯誤訊息」,當回應體小於特定大小(約 512 bytes)且狀態碼 ≥ 400 時,會**攔截伺服器回應並顯示內建頁面**。

解決方案(任一即可)

  1. 客戶端設定(僅供開發測試):
    IE → 網際網路選項 → 進階 → 取消勾選「顯示友好 HTTP 錯誤訊息」。
  2. 伺服器端:擴大錯誤頁回應體(推薦):
    在 `ErrPage.jsp` 中輸出足夠內容(> 1KB),如加入隱藏註釋或詳細堆疊追蹤:
    `<%-- padding to exceed 512 bytes --%>`
    或設定 `response.setStatus(HttpServletResponse.SC_OK);` 偽裝 200 狀態碼(不推薦,違背語義)。
  3. Tomcat 配置:自定義錯誤頁面(生產環境標準做法):
    在 `web.xml` 定義:
    ```xml 500 /ErrPage.jsp ```
    Tomcat 直接處理,繞過 JSP `errorPage` 指令,回應體由錯誤頁 JSP 完全控制。

驗證

使用 Chrome DevTools / Fiddler 檢查回應:狀態碼 500、Content-Length > 512、內容為自定義錯誤頁 HTML,即可確認生效。

採用 `web.xml` 統一錯誤頁配置 + 確保回應體足夠大,徹底解決瀏覽器攔截問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved