Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP로 공통 오류 페이지(Error Page)를 만드는 방법

JSP는 page 속성을 이용해 각 JSP마다 오류 페이지(Error Page)를 지정할 수 있는 기능을 제공합니다. 페이지 실행 중 예외(Exception)가 발생하면 JSP 컨테이너가 자동으로 해당 오류 페이지를 호출하므로, 별도의 try-catch 처리 없이도 일관된 에러 화면을 사용자에게 보여줄 수 있습니다.

1. 오류 페이지 지정하기

다음은 main.jsp에 오류 페이지를 지정하는 예제입니다. 오류 페이지를 설정하려면 <%@ page errorPage = "xxx" %> 디렉티브를 사용합니다.

<%@ page errorPage = "ShowError.jsp" %>

<html>
    <head>
        <title>Error Handling Example</title>
    </head>
    <body>
        <%
            // 예외를 발생시켜 오류 페이지 호출
            int x = 1;
            if (x == 1) {
                throw new RuntimeException("Error condition!!!");
            }
        %>
    </body>
</html>

위 코드에서는 조건이 참일 때 RuntimeException을 강제로 발생시켜, 지정된 오류 페이지(ShowError.jsp)가 호출되도록 합니다.

2. 오류 처리 페이지 작성하기

이제 실제 오류를 표시할 JSP인 ShowError.jsp를 작성해 보겠습니다. 주목할 점은 오류 처리 페이지에 <%@ page isErrorPage = "true" %> 디렉티브가 포함되어 있다는 것입니다. 이 디렉티브가 있으면 JSP 컴파일러가 exception 인스턴스 변수를 생성해 주므로, 페이지 내부에서 발생한 예외 정보에 접근할 수 있습니다.

<%@ page isErrorPage = "true" %>

<html>
    <head>
        <title>Show Error Page</title>
    </head>
    <body>
        <h1>Opps...</h1>
        <p>죄송합니다. 오류가 발생했습니다.</p>
        <p>예외 스택 트레이스는 다음과 같습니다:</p>
        <pre><% exception.printStackTrace(response.getWriter()); %></pre>
    </body>
</html>

3. 실행 결과 확인하기

main.jsp에 접속하면 다음과 유사한 출력 결과를 확인할 수 있습니다.

java.lang.RuntimeException: Error condition!!!
......

Opps...
Sorry, an error occurred.

Here is the exception stack trace:

핵심 정리

  • errorPage 디렉티브: 예외 발생 시 이동할 오류 페이지를 지정합니다.
  • isErrorPage 디렉티브: 해당 JSP가 오류 처리 페이지임을 선언하며, exception 객체 사용을 가능하게 합니다.
  • 예외가 발생하면 JSP 컨테이너가 자동으로 오류 페이지로 전환하므로, 여러 페이지에서 하나의 공통 오류 페이지를 재사용할 수 있습니다.