【JSP】配置錯誤頁面
阿新 • • 發佈:2017-06-24
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" pageEncodingerrorPage.jsp="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文件, 當出現錯誤時, 會將錯誤對象傳遞至錯誤頁面 --> <%@ 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】配置錯誤頁面