
순수 서블릿 컨테이너가 에러를 처리하는 방법
Exceptionresponse.sendError자바를 직접 실행할때, main()에서 에러를 던지면 해당 쓰레드는 종료됨
웹 어플리케이션은 Was 까지 던져지고, 해당 화면을 보게됨

서블릿은 Exception이 서블릿 밖으로 전달되거나, response.sendError()가 호출 되었을 때 상황에 맞게 오류 처리 기능을 제공
작동원리
Was는 오류 페이지를 요청하면서 오류 정보를 request의 attribute에 추가해서 넘겨줌
DispatcherType
REQUEST : 클라이언트 요청ERROR : 에러 요청FORWARD : RequestDispatcher.forward(request,response)Include : 서블릿이나 다른 서블릿에서 JSP 결과 포함할때ASYNC : 비동기 호출오류가 발생했을 때, /error를 요청.
스프링 부트가 자동 등록한 BasicErrorController는 이 경로를 기본으로 받음
개발자 할일
BasicErrorController는 기본적인 로직이 모두 개발되어 있으므로,
오류 페이지 화면만 등록하면 됨
/resorces/templates/error/...에 오류 페이지 파일을 넣어두기만 하자
4xx.html은 모든 400번대 에러를 처리
BasicErrorController가 제공하는 정보
timestamp: Sun Feb 12 15:15:03 KST 2023
path: /error-ex
status: 500
message: null
error: Internal Server Error
exception: null
errors: null
trace: null