<error-page>
예외처리를 위한 메서드를 작성하고, @ExceptionHandler를 붙인다.
@ControllerAdvice로 전역 예외 처리 클래스를 작성할 수 있다.
(패키지 지정 가능)
예외처리 메서드가 중복된 경우, 컨트롤러 내의 예외 처리 메서드가 우선.
isErrorPage가 true면 pageContext.exception사용 가능하지만, 상태코드를 강제로 500으로 만든다.
<%@ page contentType="text/html;charset=utf-8" isErrorPage="true" %>
응답 메세지의 상태 코드를 변경할 때 사용한다.
1. 예외처리 메서드 앞에 붙여서 응답 코드를 변경.
예외가 처리되면 응답메세지가 200(성공)이 나오므로, 400이나 500으로 변경해줘야한다.
2. 사용자 정의 예외 클래스에 사용.(MyException)
사용자 정의 예외 클래스는 기본 응답코드가 500이므로, @ResponseStatus로 변경할 수 있다.
<error-page>
상태 코드별 뷰 맵핑을 할 수 있다.
<error-page>
<error-code>400</error-code>
<location>/error400.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
예외 종류별로 맵핑 할 수 있다.
뷰 컨트롤러와 비슷하게, 다른 작업 없이 에러뷰를 보여주는 역할만 한다.
<beans:bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<beans:property name="defaultErrorView" value="error"/>
<beans:property name="exceptionMappings">
<beans:props>
<beans:prop key="com.fastcampus.ch2.MyException">error400</beans:prop>
</beans:props>
</beans:property>
<beans:property name="statusCodes">
<beans:props>
<beans:prop key="error400">400</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
3개의 스프링 기본 전략이 DispatcherServlet.properties에 정의되어있다.
1.ExceptionHandlerExceptionResolver
2.ResponseStatusExceptionResolver
3.DefaultHandlerExceptionResolver
<error-page>