728x90

interface 작성

- 서블릿과 비슷한 모양의 컨트롤러 인터페이스를 도입한다. 각 컨트롤러들은 이 인터페이스를 구현하면 된다. 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없이 로직의 일관성을 가져갈 수 있다.
- 이제 이 인터페이스를 구현한 컨트롤러를 만들어보자. 지금 단계에서는 기존 로직을 최대한 유지하는게 핵심이다
Controller 작성



- 내부 로직은 기존 서블릿과 거의 같다
- 리펙토링의 할 때에는, 변경해야할 관심사만 변경해야 한다(같은 레벨만 변경해야 한다)
FrontControllerV1 작성

- urlPatterns
- urlPatterns = "/front-controller/v1/*" : /front-controller/v1 을 포함한 하위 모든 요청은 이 서블릿에서 받아들인다.
- controllerMap
- key: 매핑 URL
- value: 호출될 컨트롤러
- service()
- 먼저 requestURI를 조회해서 실제 호출할 컨트롤러를 controllerMap에서 찾는다. 만약 없다면 404(SC_NOT_FOUND) 상태 코드를 반환한다.
- 컨트롤러를 찾고 controller.process(request, response); 을 호출해서 해당 컨트롤러를 실행한다
- JSP
- JSP는 이전 MVC에서 사용했던 것을 그대로 사용한다.
728x90
'스프링 MVC 1편 (백엔드 웹 개발 핵심 기술)' 카테고리의 다른 글
| Ch04. MVC 프레임워크 만들기 - Model 추가(v3) (0) | 2022.03.04 |
|---|---|
| Ch04. MVC 프레임워크 만들기 - View 분리(v2) (0) | 2022.03.04 |
| Ch04. MVC 프레임워크 만들기 - 프론트 컨트롤러 패턴 소개 (0) | 2022.03.04 |
| Ch03. 서블릿, JSP, MVC 패턴 - MVC 패턴(한계) (0) | 2022.03.03 |
| Ch03. 서블릿, JSP, MVC 패턴 - MVC 패턴(적용) (0) | 2022.03.03 |