1. 程式人生 > >【JSP】配置錯誤頁面

【JSP】配置錯誤頁面

panel jsp頁面 version cati 調試 view nal dex -type

1,使用JSP方式

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

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

錯誤頁面:

技術分享
<[email protected] import="java.io.PrintStream"%>  
<[email protected] 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>
errorPage.jsp

可以使用這個頁面來觸發上面的那個錯誤:

技術分享
<!-- 
    errorPage: 填入一個jsp文件, 當出現錯誤時, 會將錯誤對象傳遞至錯誤頁面
 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="errorPage.jsp"%>
<!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>Insert title here</title>
</head>
<body>
    <%
        String a = null;
        a.toString();//制造一個錯誤
    %>
</body>
</html>
home.jsp

2,也可以使用配置xml的方式:

技術分享
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>day06_JSPDemo1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <!--
      對於項目的異常狀態處理
  -->    
<!-- 默認的錯誤處理頁面 -->  
        <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  
         -->   
</web-app>
web.xml

錯誤頁面也可以自己寫,我們也可以引入公益404頁面,比如:

技術分享
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>網頁不見了~</title>
<script type="text/javascript" src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" charset="utf-8" homePageUrl="http://localhost/demo1.jsp" homePageName="回到主頁"></script>
</head>
<body>
    <%
        //這個設置可以欺騙IE瀏覽器,讓IE瀏覽器成功顯示公益404頁面
        response.setStatus(200);
    %>
</body>
</html>
500.jsp

原文鏈接:web.xml配置錯誤頁面

【JSP】配置錯誤頁面