MVC(Model, View, Controller) model1, MVC model2, FrontController, Controller, Model,
-------------------------------MVC model2---------------------------
model1
- 요청 하나당 JSP 하나가 필요하다.
- 자바요소 + HTML 요소
* 유지보수가 어렵다
* 자바코드의 재사용성이 낮아진다.
* 생상성이 떨어진다.
- 요청이 분산되기 때문에 공통가능의 적응이 어렵다.
- 프로젝트 수행에 필요한 추가적인 환경설정 및 교육이
필요하지 않다.
model2
- MVC 패턴을 적용한 웹개발 방식
(M : model, V : view, C : controller)
- Front Controller
* 모든 요청 접수
* 요청을 분석해서 적절한 컨트롤러를 찾고
적절한 요청처리 메소드를 실행한다.
* controller의 요청처리 완료하면
적절한 JSP로 이동시킨다.
- Controller
* 클라이언트의 요청처리 수행
* model을 실행해서 획득한 데이터를 View로 전달.
* Front Controller에게 이동할 JSP경로를 제공
- Model
* 요청처리를 위한 업무로직수행
(DB Access, 업무로직 즉 Dao및 Service)
* Controller에 데이터를 제공한다.
(저장, 변경, 삭제와 관련업무일때 데이터
제공이 없을 수도 있다.)
- View (JSP)
* 동적 컨텐츠를 제공
(EL, JSTL)를 사용해서 자바코드 없이
동적 컨텐츠를 생성
=========================================================
응수 프레임워트 가이드
1. 컨트롤러 작성법
* 컨트롤러 클래스에는 @Controller를 붙인다.
2. 요청 핸들러 메소드 작성법
* 요청 핸들러 메소드에는 @RequestMapping를 붙인다.
* @RequestMapping("요청URI")에 핸들러 메소드와 매핑된 요청URI(요청경로)를 지정한다.
* 모든 요청 핸들러 메소드는 ModelAndView객체를 반환한다.
* 모든 요청 핸들러 메소드는 HttpServletRequest와 HttpServletResponse를 전달받는다.
* 모든 요청 핸들러 메소드는 Exception을 던진다.
3. ModelAndView
* JSP에 전달할 데이터(객체)와 이동할 JSP 페이지의 경로(이름)을 담는 객체가.
* ModelAndView에 저장된 데이터는 FrontController이 페이지 이동전에
요청객체에 속성으로 저장한다.
* FrontController은 ModelAndView에 설정된 JSP 페이지의 경로로
클라이언트의 요청을 이동시킨다.
* forward 이동 : "/home.jsp"
redirect 이동 : "redirect:home.hta"
=========================================================