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

김태훈님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

정리

html 대신 객체를 반환할 때 Dispatcher Servlet에서는 어떻게 처리가 되는걸까요??

해결된 질문

작성

·

339

2

안녕하세요, 강의를 보다가 이해가 안되는 부분이 있어서요.

 

Spring MVC 구조에서

핸들러 어댑터는 Dispatcher Servlet한테 ModelAndView를 반환해주잖아요!

그러면 Dispatcher Servlet은 view Resolver를 사용해서 View로 만들어줘 HTML을 보내주고요.

그런데 @ResponseBody 등을 사용해 html대신 직접 객체를 반환해주는 경우에는 어떤 식으로 흐름이 진행되는지가 헷갈려서요,

Http 메세지 컨버터에 보내주면 여기에서 응답 결과를 만드는 거 까지는 이해했는데, 그러면 핸들러 어댑터는 DispatcherServlet에 ModelAndView를 반환하지 않아도 되는건가요?

 

요약하면 HTML대신 객체를 반환하는 경우 Dispatcher Servlet에서 어떻게 처리가 일어나는지가 궁금합니다..!

 

답변 1

2

안녕하세요. 김태훈님, 공식 서포터즈 David입니다.

view가 없으면 view와 관련된 처리를 하지 않습니다.

대신, response body를 사용하여 객체를 json 형태로 내보낼 때에는 응답 메시지의 body에 객체를 json 형태로 변환한 문자열을 씁니다(write). 그러면 사용자는 응답으로 json 형태의 문자열을 받아보게 됩니다.

구체적인 동작 원리는 DispatcherServlet.doDispatch() 코드 디버깅하여 따라가보시면 좋을 것 같습니다.

감사합니다.