전체 글

· Java/spring
서블릿 종속성 제거 -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 ..
· Java/spring
View 분리 -v2 MyView package hello.servlet.web.frontcontroller; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class MyView { private String viewPath; public MyView(String viewPath){ this.viewPath = viewPath; } public void render(Ht..
· Java/spring
프론트 컨트롤러 패턴 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 V1 구조 FrontController 패턴 특징 컨트롤러 서블릿 하나로 클라이언트 요청 처리(프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출) 입구가 하나 (공통 처리가 가능) 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. (중복 제거) ControllerV1 package hello.servlet.web.frontcontroller.v1; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOExcep..
· Java/spring
MVC 패턴의 한계 컨트롤러의 역할과 뷰를 랜더링하는 역할을 명확하게 구분 그러나 중복이 많고, 필요하지 않는 코드들도 많다. MVC 컨트롤러의 단점 포워드 중복 RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); view로 이동하는 코드의 중복 ViewPath에 중복 String viewPath = "/WEB-INF/views/save-result.jsp"; 확장자가 jsp로 고정됨 사용하지 않는 코드 HttpServletRequest request, HttpServletResponse response response를 사용하지 않을 때도 있지만 선언은 해야한..
zero_jae
영재