FrontController패턴

김형민·2021년 10월 11일
0

FrontController 패턴

최초 앞단에서 request 요청을 받아서 필요한 클래스에 넘겨준다. 왜? web.xml에 다 정의하기가 너무 힘듬.

톰켓은 request & reponse라는 객체를 만든다
request는 요청에 대한 정보를
request를 토대로 reponse라는 객체를 만든다

특정 주소로 설정해 놓은 요청은 FrontController가 낚아챈다. 이때 내부적으로 request 재요청이 일어난다.

이때 기존의 톰캣이 만들어 놓은 요청&응답 객체를 지우지 않고 FrontController에서도 기존의 요청&응답 객체를 사용하는 방법이 있다

이것이 requestDispatcher 톰캣이 만든 req & res객체 계속사용

requestDispatcher를 이용하면 데이터를 들고 페이지를 이동할 수 있다

이때 새로운 요청이 생기기 때문에 request와 response가 새롭게 new될 수 있다. 그래서 아래의 RequestDispatcher가 필요하다.

RequestDispatcher

필요한 클래스 요청이 도달했을 때 FrontController에 도착한 request와 response를 그대로 유지시켜준다.

DispatcherServlet

FrontController 패턴을 직접짜거나 RequestDispatcher를 직접구현할 필요가 없다. 왜냐하면 스프링에는 DispatcherServlet이 있기 때문이다. DispatcherServlet은 FrontController 패턴 + RequestDispatcher이다.

DispatcherServlet이 자동생성되어 질 때 수 많은 객체가 생성(IoC)된다. 보통 필터들이다. 해당 필터들은 내가 직접 등록할 수 도 있고 기본적으로 필요한 필터들은 자동 등록 되어진다.

쉽게말해 요청에 대한 주소분배가 가장 큰 목적이라고 할 수 있고 주소 분배전에 모든 파일(컴포넌트)들을 스캔해 필요한 것들을 IOC메모리에 올린다

이때 필요한 것들은 @Controller, @RestController, @Configuration, @Repository, @Service, @Component 등등.. 같은 어노테이션 선언으로 구분할 수 있다

출처 https://getinthere.tistory.com/11

profile
항해 중인 개발자

0개의 댓글