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

냐암2님의 프로필 이미지
냐암2

작성한 질문수

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

핸들러 매핑과 핸들러 어댑터

HttpRequestHandler에 대해서

해결된 질문

작성

·

26

0


질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

안녕하세요 선생님!

HttpRequestHandler에 대해 공부하던 중 궁금한 점이 있어 질문 드립니다.

  1. HttpRequestHandler는 서블릿과 가장 유사한 형태의 핸들러라고 자료에 나와있는데 서블릿과 가장 유사하다는 것이 어떤 의미인지 잘 모르겠습니다.

  2. HttpRequestHandler의 Adapter인 HttpRequestHandlerAdapter를 들어가 보았는데

  3.  

public class HttpRequestHandlerAdapter implements HandlerAdapter{
//...

@Nullable
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object Handler) throws Exception{
((HttpRequestHandler)handler).handleRequest(request,response);
return null;}
//...
}

와 같이 ModelAndView를 반환하지 않고 null을 반환하고 있습니다.

image.png

이 그림에서는 MVC의 구조에서 ModelAndView를 반환한다고 되어있는데 null을 반환하여 질문드려봅니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
냐암2님 질문에 대해 답변 드리겠습니다.

HttpRequestHandler에 대한 두 가지 질문에 대해서 설명드리겠습니다.

  1. 서블릿과 유사: HttpRequestHandler는 스프링 프레임워크 내에서 가장 기본적이고 저수준의 핸들러 인터페이스로, 서블릿 API와 유사한 방식으로 HTTP 요청을 처리합니다. 서블릿은 HttpServletRequest와 HttpServletResponse 객체를 사용하여 요청과 응답을 관리하듯이, HttpRequestHandler도 같은 객체들을 사용하여 직접적으로 요청을 처리합니다. 즉, 컨트롤러가 HttpRequestHandler를 통해 직접 요청을 처리하는 것처럼 Low-level한 접근방식이라는 의미입니다.

  2. ModelAndView 반환: 일반적으로 Spring MVC 핸들러 메서드는 요청 처리 후 ModelAndView 객체를 반환하여 모델과 뷰 정보를 전달합니다. 그러나 HttpRequestHandlerAdapter에서는 직접 요청을 처리하고 뷰에 대한 처리는 별도로 이루어지지 않기 때문에 null을 반환합니다. 이 방식은 뷰 처리가 필요 없는 경우나 요청 및 응답만 단순히 처리하는 경우에 유용하게 사용됩니다. 따라서, 뷰 렌더링에 대한 로직은 필요하지 않을 수 있습니다.

궁금하신 부분이 해결되셨기를 바랍니다. 더 궁금한 점이 있으면 언제든지 질문해주세요.

이미지 출처 및 더 많은 정보: Spring MVC
Spring MVC(모델-뷰-컨트롤러) 아키텍처 구조 설명 이미지
아래 링크는 내용을 더 참고할 수 있는 출처입니다:
- Spring Boot Reference Documentation

냐암2님의 프로필 이미지
냐암2

작성한 질문수

질문하기