1. 예외생성 컨트롤러 생성 (예외, 오류 강제생성)
서블릿컨테이너(WAS=톰캣)에 런타임예외. 에러를 전달하기 위한 메서드 작성
* throw Exception / 예외를 던지거나
* HttpServletResponse.sendError() / Http상태 메세지 Redirect
2. application.property 설정
* 스프링부트에서 기본적, 제공하는 whitelabel Page 비 활성화.
3. 예외, 오류 처리에 관한 빈(Bean) 생성
org.springframework.boot.web.server.WebServerFactoryCustomizer 인터페이스 구현
4. 에러페이지 컨트롤러 생성 (에러페이지 분기처리 담당)
에러페이지 분기처리 확인. (404, 500...)
*************************
스프링부트(SpringBoot)에서 `ErrorPage` 빈을 자동으로 등록, "/error" 경로로 Default 오류페이지를 설정,
BasicErrorController 컨트롤러를 자동등록 한다. (ErrorPage 에서 등록한 "/error" 에 관하여 매핑처리 역할)
org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController
*************************
5. WebServerCustomizer 수정
오류 페이지에 관하여 직접적으로 분기처리를 담당하였던, WebServerCustomizer를 사용되지 않도록 주석처리..
(SpringBoot에서 기본적으로 제공하는 에러처리 활용)
6. 에러페이지 생성 (Default ErrorPage Path)
<< BasicErrorController View(오류화면) 처리순서 >>
1순위. Client To Server 뷰 템플릿 (resources/templates/**)
* resources/templates/error/400.html // HTTP STATUS Code (400) 명확한 것 우선 호출..
* resources/templates/error/4xx.html // 400 외.. (401, 402, 403, 404...)
--> 뷰 템플릿은 동적으로 (Client To Server) 상호작용
2순위. 정적리소스 (resources/static/**)
* resources/static/error/500.html // HTTP STATUS Code (500) 명확한 것 우선 호출..
* resources/static/error/5xx.html // 500 외.. (501, 502, 504, 505...)
--> 정적인 화면은 수정X (고정적인 화면)
3순위. 위 해당사항 없을시 ( 1,2번에 관한 View 존재x )
* resources/templates/error.html
'SpringBoot' 카테고리의 다른 글
[SpringBoot] RestAPI요청 예외처리 (1) (0) | 2021.08.18 |
---|---|
[SpringBoot] 인터셉터 생성 및 적용 (0) | 2021.07.31 |
[SpringBoot] 쿠키 생성 및 활용 (0) | 2021.07.25 |
[SpringBoot] 서블릿 필터 생성 및 적용 (0) | 2021.07.25 |
1. 스프링부트 프로젝트 기본생성 및 환경설정. (0) | 2021.07.18 |