인프런 커뮤니티 질문&답변

chaelynjang님의 프로필 이미지
chaelynjang

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

HandlerExceptionResolver 시작

MyHandlerExceptionResolver 테스트 관련 문의

작성

·

338

0

안녕하세요 강사님

예전에 들었던 강의 다시 복습하면서 테스트해보고 있는데 http://localhost:8080/api/members/bad 를 포스트맨으로 실행하면 강의에서처럼 json 형태로 응답을 받지만 크롬에서 해당 url을 치면 BasicErrorController가 실행되는지 error/4xx.html 화면이 렌더링이 됩니다.

빈 ModelAndView를 리턴하는데 이게 어떻게 가능한 건지 잘 이해가 되지 않습니다.

sendError에 400을 설정해줘서 BasicErrorController가 알아서 error/4xx.html 화면을 렌더링해주는건가요?

답변 주시면 정말 감사드리겠습니다 !

답변 1

1

안녕하세요. chaelynjang님, 공식 서포터즈 y2gcoder입니다.

여기서 MyHandlerExceptionResolver 가 해주는 역할은 강의 자료 중 예외 상태 코드 변환에 가깝습니다.

image

이미 response.sendError()로 예외만 살짝 변경해서 서블릿으로 예외를 보냈기 때문에 WAS는 예외를 받아서 다시 서블릿 오류 페이지를 찾기 위해 BasicErrorController로 오게 됩니다.

여기서 accept가 Postman은 application/json 이기 때문에 json으로 응답, 일반 웹 페이지에서는 accept가 text/html이기 때문에 상태 코드에 따라 스프링 기본 오류 페이지를 호출한다고 이해해주시면 될 것 같습니다.

감사합니다.

chaelynjang님의 프로필 이미지
chaelynjang

작성한 질문수

질문하기