View 분리 - v2

모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 있고, 깔끔하지 않다. => 별도로 뷰를 처리하는 객체를 만들자.

 String viewPath = "/WEB-INF/views/new-form.jsp";
  RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
  dispatcher.forward(request, response);

이제 컨트롤러가 View생성하고 반환한다.

View를 인터페이스로 설계하게 되면 . 확장성 좋게 JSP 뿐만아니라 다른 포맷의 데이터들도 반환이 가능하게 된다!

구현에 있어 Controller2와 달라진 점 Controlleer2는 MyView를 생성하고 반환만 한다!

package hello.servlet.web.frontcontroller.v2;

import hello.servlet.web.frontcontroller.MyView;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public interface ControllerV2 {
    //ControllerV2는 MyView를 생성하고 반환만 한다!
    MyView process(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException;

}

Last updated

Was this helpful?