728x90

 

지난글 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 에서 스레드

 

 

둘다 같은걸 볼 수 있다.

 

 

728x90

+ Recent posts