CODING stroy

SpringMVC의 FrontController인 dispatcher-servlet의 동작원리 본문

JAVA

SpringMVC의 FrontController인 dispatcher-servlet의 동작원리

코코story 2022. 7. 27. 20:43

SpringMVC의 FrontController인 dispatcher-servlet의 동작원리

 

 

클라이언트의 요청을 받아 컨트롤러에게 전달,

컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다.

 


dispatcher-servlet

 어플리케이션으로 들어오는 모든 Reauest를 받는 관문

요청을 실제로 처리할 Controller에 전달하고

그 결과값을 받아서 view에 전달하여 적절한 응답을 생성할 수 있도록 흐름을 제어합니다.


 

사용이유 :

spring mvc dispatcherServlet 등장함에 따라

web.xml의 역할을 상당히 축소시켜주었습니다.

기존에는 모든 서블릿에 대해 URL매핑을 활용하기 위해서

web.xml을 모두 등록해주어야 했지만

dispatcher-servlet이 등장함에 따라

해당 어플리케이션으로 들어오는 모든 요청을 핸들링 해주면서

작업을 편리하게 할 수 있게 되었습니다.


HandlerMapping : 

request URL이 각각 어떤 컨트롤러가 실제로 처리할 것인지 찾아주는역할

model, view : controller가 처리한 후

그 결과를 보여줄 view에 대한 정보를 담고 있는 객체입니다.

view : controller가 처리한 결과값을 보여줄 view


요약 :

웹브라우저(클라이언트)URL로 접근하면 DispatcherServlet에서

핸들러매핑에 해당요청을 매핑한 컨트롤러가 있는지 요청을 합니다.

그러면 핸들러매핑에서 컨트롤러로 요청을 처리합니다.

 

컨트롤러는 클라이언트의 요청을 처리하고 결과를 보여줄 view의 이름을 모델앤뷰로 리턴합니다.

모델엔뷰는 다시 DispatcherServlet으로 정보를 전달하고

DispatcherServlet은 해당 view를 뷰리졸버에 보내며

여기서도 검색결과를 view로 보냅니다.

 

view는 처리결과를 다시 DispatcherServlet으로 보내고

DispatcherServlet은 최종결과를 클라이언트(웹브라우저)에 출력합니다.


스프링 어노태이션 :

@를 이용한 주석으로 자바코드에 특별한 의미를 부여하는 것입니다.

프로그램 코드가 아닌 프로그램 및 코드에 정보를 추가하는 정형화된 방식


web.xml은

URL 경로와 해당 경로의 요청을 처리하는 서블릿 사이의 매핑을 정의합니다.

 


틀린 거 있으면 댓글로 고쳐주세요

읽어주셔서 감사합니다