지난글 https://nataekoon.tistory.com/170
spring boot 의 에러 페이지에 대하여
spring boot에서 에러 페에지이 대해서 알아보자 프로젝트 진행시 에러페이지가 나올 수 있는 요구 사항은 적어도 5가지 이상있을 것 같다 1. 잘못된 요청에 대한 에러페이지2. 로그인을 하지 않
nataekoon.tistory.com
이번에는 실습과 함께 좀 보자
환경은 대충 이렇다
스프링 부트 | 3 |
jdk | 17 |
view | thymeleaf |
일부로 에러를 내기위한 /500
post요청을 처리하는 /post 을 기억하자

일반적으로 에러만 안나면 index.html 를 리턴하도록 했다

다음은 폴더구조 이다

error 디렉터리 밑에 다음처럼 만들어놧다
파일의 내용은 다 똑같다

(* 참고로 trace는 숨기는게 안전하다 웹 소스경로나 클래스이름이 노출된다)
자 그럼 /500 을 호출해보자 에러가 발생했으므로 index.html 를 리턴하지 않았다

상황을 해석해보자
사용자가 /500 로 컨트롤러를 호출했고,
해당 컨트롤러는 무조건 예외를 터트리기 때문에 이 예외가 서블릿까지 올라간다
그다음 서블릿에서 forward로 /error 로 요청하고
지난번 포스트에서 보던데로 BasicErrorController 가 이를 처리한다
따라서 forward 이기떄문에
브라우저 url을 보면 최초 요청 localhost:8080/500 이 그대로있고
디버깅으로 스레드를 봐도 똑같은 번호를 가진다
1. MainController 에서 스레드

2. BasicErrorController 에서 스레드

둘다 같은걸 볼 수 있다.
'개발 > spring' 카테고리의 다른 글
spring boot 의 에러 페이지에 대하여 (0) | 2024.12.14 |
---|---|
AssertJ 기본 문법 정리 (0) | 2024.07.02 |
트랜잭션 ACID (0) | 2024.06.29 |
MXBean already registered with name org.apache.commons.pool2:type=GenericObjectPool,name=pool 에러 (0) | 2024.06.07 |
JUnit5 배워보자 (0) | 2024.05.05 |