본문 바로가기
Back/JSP

[JSP] 웹페이지의 에러가 발생했을 때 특정 페이지 띄우기(errorPage / 에러페이지)

by 시월해 2021. 5. 3.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true" errorPage="error.jsp" %>

isErrorPage 는 에러가 발생했을 때 다른 페이지를 띄우겠냐는 뜻-> true

errorPage는 에러 발생 시 띄울 페이지의 URL -> error.jsp(파일명은 자유)

위 두 개의 속성이 추가되어 있어야 에러 페이지로 이동한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		int su = 10 / 0;
	%>
</body>
</html>

위 소스의 경우, 변수를 선언하기 때문에 <% %>가 아닌 <%! %>를 사용해야한다.

따라서 에러가 발생할 것이다.

에러가 난 파일의 경로를 볼 수 있다.

 

에러가 발생하는 것을 확인했으니, 에러가 발생했을 때 출력될 페이지를 만든다.

 

error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	에러페이지입니다...
</body>
</html>

간단하게 안내말을 출력하는 페이지다.

 

이제 기존 소스에 isErrorPage와 errorPage 속성을 추가한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true" errorPage="error.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		int su = 10 / 0;
	%>
</body>
</html>

그 후 실행을 해보자.

여전히 경로는 에러가 난 파일로 되어있지만, 아까와 달리 에러페이지가 출력된 것을 볼 수 있다.