web.xml: 這種寫法在ie瀏覽器下有問題. 必須在IE【工具】->【Internet選項】->【進階】中勾掉【顯示友好http錯誤提示】; 但我們不能控制客戶的瀏覽器 <error-page> <error-code>404</error-code> <location>/error404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error500.jsp</location> </error-page> ---------------------------- 正確的: <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page> <error-page> <error-code>400</error-code> <location>/error.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> error.jsp: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.io.*" errorPage="error.jsp"%> <html> <head> <title>自訂的錯誤頁</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body marginwidth="0" leftmargin="0" bgcolor="ffffff"> <table width="90%"> <tbody> <tr> <td width="98%"> 這是自訂的錯誤頁 <hr> </td> </tr> <tr> <td></td> </tr> <tr> <td> <% int status_code = -1; String exception_info = null; Exception theException = null; status_code = ((Integer) request.getAttribute("javax.servlet.error.status_code")); exception_info = (String) request.getAttribute("javax.servlet.error.message"); theException = (Exception) request.getAttribute("javax.servlet.error.exception_type"); if(status_code==404) response.sendRedirect("error404.jsp"); if(status_code==500) response.sendRedirect("error500.jsp"); out.println("<br><b>StatusCode:</b> " + status_code); out.println("<br><b>Exception:</b>" + exception_info); %> </TD> </TR> <TD> <HR> </TD> </TR> </TBODY> </TABLE> </body> </html>