1. 程式人生 > >web.xml配置錯誤頁面,及輸出錯誤信息

web.xml配置錯誤頁面,及輸出錯誤信息

tools b- 出錯 print exce str 異常信息 csdn ()

1.需要在web.xml中配置相關信息

[html] view plain copy print?
  1. <!-- 默認的錯誤處理頁面 -->
  2. <error-page>
  3. <error-code>403</error-code>
  4. <location>/403.html</location>
  5. </error-page>
  6. <error-page>
  7. <error-code>404</error-code>
  8. <location>/404.html</location>
  9. </error-page>
  10. <!-- 僅僅在調試的時候註視掉,在正式部署的時候不能註釋 -->
  11. <!-- 這樣配置也是可以的,表示發生500錯誤的時候,轉到500.jsp頁面處理。 -->
  12. <error-page>
  13. <error-code>500</error-code>
  14. <location>/500.html</location>
  15. </error-page>
  16. <!-- 這樣的配置表示如果jsp頁面或者servlet發生java.lang.Exception類型(當然包含子類)的異常就會轉到500.jsp頁面處理。 -->
  17. <error-page>
  18. <exception-type>java.lang.Exception</exception-type>
  19. <location>/500.jsp</location>
  20. </error-page>
  21. <error-page>
  22. <exception-type>java.lang.Throwable</exception-type>
  23. <location>/500.jsp</location>
  24. </error-page>
  25. <!--
  26. 當error-code和exception-type都配置時,exception-type配置的頁面優先級高
  27. 及出現500錯誤,發生異常Exception時會跳轉到500.jsp
  28. -->
<!-- 默認的錯誤處理頁面 -->
	<error-page>
		<error-code>403</error-code>
		<location>/403.html</location>
	</error-page>
	<error-page>
		<error-code>404</error-code>
		<location>/404.html</location>
	</error-page>
	<!-- 僅僅在調試的時候註視掉,在正式部署的時候不能註釋 -->
	<!-- 這樣配置也是可以的,表示發生500錯誤的時候,轉到500.jsp頁面處理。 -->
	<error-page> 
		<error-code>500</error-code> 
		<location>/500.html</location> 
	</error-page> 
	
	<!-- 這樣的配置表示如果jsp頁面或者servlet發生java.lang.Exception類型(當然包含子類)的異常就會轉到500.jsp頁面處理。 -->
	<error-page> 
		<exception-type>java.lang.Exception</exception-type> 
		<location>/500.jsp</location> 
	</error-page> 
	
	<error-page> 
		<exception-type>java.lang.Throwable</exception-type> 
		<location>/500.jsp</location> 
	</error-page>
	<!-- 
	當error-code和exception-type都配置時,exception-type配置的頁面優先級高
	及出現500錯誤,發生異常Exception時會跳轉到500.jsp
	 -->	

2.如果配置是html時,不用另做配置

如果配置是Jsp時,需要把isErrorPage設置為true,

及<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

3.獲取異常信息及輸出

[html] view plain copy print?
  1. <%@page import="java.io.PrintStream"%>
  2. <%@page import="java.io.ByteArrayOutputStream"%>
  3. <%@ include file="WEB-INF/views/includes/tags.jsp"%>
  4. <%@ page language="java" contentType="text/html; charset=UTF-8"
  5. pageEncoding="UTF-8" isErrorPage="true"%>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  10. <title>500 服務器內部錯誤</title>
  11. </head>
  12. <body>
  13. <div class="ui-alert-panel">
  14. <h1>服務器內部錯誤</h1>
  15. <p>處理您的請求時發生錯誤!請確認您通過正確途徑操作。</p>
  16. </div>
  17. <div style="display:none;">
  18. <% //此處輸出異常信息
  19. exception.printStackTrace();
  20. ByteArrayOutputStream ostr = new ByteArrayOutputStream();
  21. exception.printStackTrace(new PrintStream(ostr));
  22. out.print(ostr);
  23. %>
  24. </div>
  25. </body>
  26. </html>
<%@page import="java.io.PrintStream"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@ include file="WEB-INF/views/includes/tags.jsp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>500 服務器內部錯誤</title>
</head>
<body>
 <div class="ui-alert-panel">
		<h1>服務器內部錯誤</h1>
		<p>處理您的請求時發生錯誤!請確認您通過正確途徑操作。</p>
	</div>
  <div style="display:none;">
  <%  //此處輸出異常信息
  	  exception.printStackTrace();

	  ByteArrayOutputStream ostr = new ByteArrayOutputStream();
      exception.printStackTrace(new PrintStream(ostr));
      out.print(ostr);
  %>
  </div>
</body>
</html>

web.xml配置錯誤頁面,及輸出錯誤信息