Back-End/JSP

[JSP] 3. 에러처리

윤고랭이 2021. 6. 6. 01:03

 

1. 에러페이지는 왜 표시할까?

 

개발과정에서 오류 내용은 어떤 에러인지를 확인하고 바로 잡을 수 있기 때문에 

에러 화면을 보는 것이 도움이 된다.

 

하지만 사용자 입장에선 썩 좋진 않다. 신뢰하지 않게 되기도 하고 일부 코드가

노출 가능성이 있기 떄문에 보안상으로도 좋지 않다.

 

에러페이지를 노출하고 싶지 않다면 try-catch를 이용해 오류마다 응답을 생성

할수 있다.

 

<%@ page contentType = ”text/html; charset=utf-8” %>
<html>
<head><title> 파라미터 출력 </title></head>
<body>

name 파라미터 값:
<% try { %>
’ <%= request. getParameter('name"). toUppercase() %> <%-- 오류 발생 --%>
<%} catch(Exception ex) { %>
name 파라미터가 올바르지 않습니다. <%-- 오류가 발생하면 출력된다 --%>
<%}%>
<body>
</html>

 

 

(%@ page isErrorPage = ”true” %>

isErrorPage 속성값을 "true"로 지정하면 JSP페이지는 에러페이지가 된다.

exception 객체를 이용할 수 있게 되어 예외에 대한 정보를 얻을 수 있다.

 

 

2. 응답상태 코드별로 작성 

 

<error-page>
	<error-code>404</error-code>
	<location>/error/error404.jsp</location>
</error-page>

WEB-INF\web.xml에 넣기

 

 

3. 버퍼와 에러페이지

 

에러페이지는 버퍼가 플러시 되기 전에 처리되어야 함

오류가 발생하기 전에 버퍼가 플러시 될 가능성이 있다면 버퍼 크기를 늘려서

에러가 발생하기 전에 버퍼가 플러시 되지 않도록 해야 한다.