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

JSP page 디렉티브의 용도와 에러 페이지 설정 방법 (예제 포함)

JSP는 page 속성을 사용하여 각 JSP 페이지마다 에러 페이지(Error Page)를 지정할 수 있는 기능을 제공합니다. 페이지 실행 중 예외(Exception)가 발생하면, JSP 컨테이너가 자동으로 지정된 에러 페이지를 호출하여 처리합니다.

에러 페이지 지정하기

다음은 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>

에러 처리 페이지 작성하기

이제 실제 에러를 처리할 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>

실행 결과 확인

브라우저에서 main.jsp에 접속하면, 코드에서 의도적으로 발생시킨 RuntimeException으로 인해 에러 페이지가 호출되며 다음과 유사한 출력 결과를 확인할 수 있습니다.

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

Opps...
Sorry, an error occurred.

Here is the exception stack trace:

핵심 정리

  • errorPage 속성: 예외 발생 시 이동할 에러 페이지를 지정합니다.
  • isErrorPage 속성: 해당 JSP가 에러 처리 페이지임을 선언하며, exception 내장 객체 사용을 가능하게 합니다.
  • 이 두 디렉티브를 조합하면 사용자에게 친화적인 오류 화면을 제공하고, 예외 정보를 별도 페이지에서 체계적으로 관리할 수 있습니다.