MVC 패턴(v1~v5) 요약 저장 DB private static MemberRepository instance = new MemberRepository(); public static MemberRepository getInstance(){ return instance; } 요구 사항 클라이언트가 입력한 username과 age를 저장하고 목록을 보여주는 기능 Member 객체는 username과 age 매개변수를 갖음 필요한 기능 : 입력 기능, 저장 기능, 목록을 보여주는 기능 구현 과정 Front Controller를 통해 서블릿 하나로 클라이언트 요청을 받는다. 요청에 맞는 컨트롤러를 찾아서 호출 Controller를 인터페이스를 통해 각각 기능을 구현한다 인터페이스를 구현하는 컨트롤러는 Fro..
Java

유연한 컨트롤러 -v5 기존 v1~4까지의 문제 v1 ~v4 까지는 Controller를 직접 호출해 private Map controllerV4Map = new HashMap(); public FrontControllerServletV4(){ controllerV4Map.put("/front-controller/v4/members/new-form",new MemberFormControllerV4()); controllerV4Map.put("/front-controller/v4/members/save",new MemberSaveControllerV4()); controllerV4Map.put("/front-controller/v4/members",new MemberListControllerV4()); }..

실용적인 컨트롤러 -v4 v4 구조 ControllerV4 package hello.servlet.web.frontcontroller.v4; import java.util.Map; public interface ControllerV4 { String process(MapparamMap, Map model); } MemberFormControllerV4 package hello.servlet.web.frontcontroller.v4.controller; import hello.servlet.web.frontcontroller.v4.ControllerV4; import java.util.Map; public class MemberFormControllerV4 implements ControllerV4 { @..

서블릿 종속성 제거 -V3 v3 구조 ModelView package hello.servlet.web.frontcontroller; import java.util.HashMap; import java.util.Map; public class ModelView { private String viewName; private Map model = new HashMap(); public ModelView(String viewName) { this.viewName = viewName; } public String getViewName() { return viewName; } public void setViewName(String viewName) { this.viewName = viewName; } public ..