Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Exception
- Servlet
- jpa
- JDBC
- spring
- Android
- 알고리즘
- JPQL
- QueryDSL
- http
- java
- 백준
- Spring Boot
- 인프런
- springdatajpa
- Greedy
- 자바
- 스프링
- 스프링 핵심 기능
- db
- Proxy
- kotlin
- pointcut
- 그리디
- AOP
- SpringBoot
- 김영한
- 스프링 핵심 원리
- Thymeleaf
- transaction
Archives
- Today
- Total
개발자되기 프로젝트
[예외] SpringBoot - 오류페이지 본문
Servlet을 사용하여 오류 페이지를 만들려면 아래와 같은 과정이 필요함
- WebServerCustomizer
- 예외 종류에 따라서 ErrorPage 를 추가
- 예외 처리용 컨트롤러 ErrorPageController
1. SpringBoot 사용
SpringBoot는 이런 과정을 모두 해줌
- ErrorPage 를 자동으로 등록한다.
- 이때 /error 라는 경로로 기본 오류 페이지를 설정한다.
- new ErrorPage("/error") , 상태코드와 예외를 설정하지 않으면 기본 오류 페이지로 사용된다.
- 서블릿 밖으로 예외가 발생하거나, response.sendError(...) 가 호출되면
모든 오류는 /error 를 호출하게 된다.
- BasicErrorController 라는 스프링 컨트롤러를 자동으로 등록한다.
- ErrorPage 에서 등록한 /error 를 매핑해서 처리하는 컨트롤러다.
- 참고
- ErrorMvcAutoConfiguration 이라는 클래스가 오류 페이지를 자동으로 등록하는 역할을 한다.
2. 주의!
- WebServerCustomizer가 스프링 빈에 등록되어 있으면,
- SpringBoot가 제공하는 기본 오류 메커니즘이 동작하지 않음!
3. 개발자는 뭐함?
- BasicErrorController 는 기본적인 로직이 모두 개발되어 있다.
- 오류 페이지 화면만 BasicErrorController 가 제공하는 룰과 우선순위에 따라서 등록하면됨.
- 정적 HTML이면 정적 리소스, 동적으로 오류 화면을 만들고 싶으면 뷰 템플릿 경로에 오류 페이지 파일
- 와..
4. 뷰 선택 우선순위
- BasicErrorController 의 처리 순서
- 뷰 템플릿
- resources/templates/error/500.html
- resources/templates/error/5xx.html
- 정적 리소스( static , public )
- resources/static/error/400.html
- resources/static/error/404.html
- resources/static/error/4xx.html
- 적용 대상이 없을 때 뷰 이름( error )
- resources/templates/error.html
- 위 경로에 파일을 넣어두기만 하면 됨..
- 구체적일 수록 우선순위 높음.
- 5xx -> 500대, 4xx -> 400대
5. GitHub : 210927 errorPage, SpringBoot
'인프런 > [인프런] 스프링 MVC 2' 카테고리의 다른 글
[API예외] API 예외처리 (0) | 2021.09.28 |
---|---|
[예외] SpringBoot - BasicErrorController (0) | 2021.09.27 |
[예외] Servlet 예외처리 - interceptor (0) | 2021.09.27 |
[예외] Servlet 예외처리 - 필터, DispatcherType (0) | 2021.09.27 |
[예외] Servlet 예외처리 - 오류 페이지 작동 원리 (0) | 2021.09.27 |
Comments