jsp在處理error有以下三種
1.使用<% scriptlet %> 加上傳統try catch自行控制
2.使用jstl的<c:catch>標籤自行控制
3.使用jsp的errorPage設定交給別的頁面處理(又分兩種形式)
a.單一網頁控制errorPage
錯誤發起頁面必須有<%@page errorPage="接收error頁面.jsp" %>設定
範例如下:(檔名為badPage.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page errorPage="errorPage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
About to be bad....
<% int x=5/0; %>
</body>
</html>
接收error頁面.jsp範例必須有<%@page isErrorPage="true" %>設定
isErrorPage="true"代表可接收前網頁送來exception物件
範例如下:(檔名為errorPage.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
=_=..................show errorPage<br>
Exception is a ${pageContext.exception}
</body>
</html>
b.針對全域或特定類型網頁在web.xml做設定
宣告全體適用錯誤處理頁面
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorPage.jsp</location>
</error-page>
宣告特定例外錯誤處理頁面
<error-page>
<exception-type>java.lang.ArithmeticException</exception-type>
<location>/ArithmeticError.jsp</location>
</error-page>
宣告HTTTP ERROR CODE用錯誤處理頁面
<error-page>
<error-code>404</error-code>
<location>/notFoundPage.jsp</location>
</error-page>
沒有留言:
張貼留言