모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 있고, 깔끔하지 않다.
=> 별도로 뷰를 처리하는 객체를 만들자.
String viewPath = "/WEB-INF/views/new-form.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
이제 컨트롤러가 View생성하고 반환한다.
View를 인터페이스로 설계하게 되면 . 확장성 좋게 JSP 뿐만아니라 다른 포맷의 데이터들도 반환이 가능하게 된다!
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;
}