1) 요약
- Spring MVC Flow
사용자의 요청-> 사용자의 요청을 분석 -> 사용자의 요청을 처리할 자바빈을 생성 -> 비즈니스 로직이 구현된 메소드를 실행 -> 비즈니스 로직 수행 후 사용자의 요청을 JSP페이지(Redirect)나 혹은 특정 URL로 이동(포워드)시킴
- 웹 어플리케이션을 개발할 때 Spring MVC패턴을 적용하여 웹 어플리케이션의 개발이 가능하도록 구현한 것
- MVC는 Model-View-Controller로 각각의 역할을 나누어서 개발하는 하는 방식을 말함
- View는 JSP가 담당하고, Controller는 Servlet, Model은 application을 이용하여 개발
- Model 은 비즈니스로직을 담당하는 부분, 비즈니스 로직을 UI(View)로부터 분리시킴
- View 는 client가 직접 사용하는 부분이며, Model에서 생성된 Data를 client에게 보여주는 역할을 담당, 웹에서는 JSP가 담당함
- Controller는 사용자의 요청을 받아서 요청에 해당하는 비즈니스로직을 수행하도록 하고, 응답을 client에 보내는 역할, 웹에서는 서블릿이 담당
2) MVC패턴 장단점
- 장점 : 디자인코드와 비즈니스 로직이 분리
- 단점 : 초기 설계에 많은 시간이 소요, 개발자에게 MVC패턴에 대한 개념이 필수적으로 요구
MVC의 역할
1) Controller의 역할
- 사용자의 요청을 받아서 분석하고 필요한 비즈니스로직(Action)을 수행
- FrontController(DispatcherServlet) 패턴 : 모든 요청을 한군데에서 받음
- Controller는 POJO(Plain Old Java Object)로 만듭니다.
- 프레임워크에 종속적이지 않습니다.
-> Controller에서 Request Object, Response Object를 받는다면 웹에 종속이게 되지만 Spring은 ModelAndView라는 클래스가 이것을 따로 담당합니다. Controller에 넘어오는 인자가 Request Object, Response Object가 아닙니다.
2) Model의 역할
- 비즈니스 로직이 구현되어 있습니다.
- View에 제공할 Data를 가공(데이터 그자체, 거의 VO)
- Database에 데이터를 조회, 추가, 변경, 삭제하는 작업을 수행(DAO와 연결)
3) View의 역할
- 클라이언트에게 최종적으로 보여지는 영역입니다.
- 웹에서는 JSP와 JSTL을 이용해서 구현합니다.(JSP파일은 WEB-INF에 view폴더에 저장)
(CSS, Javascripts, Stylesheets, font, image 관련 파일은 등은 WebContent 폴더 하위에 저장)
(WEB-INF폴더 안에 넣으면 외부에서 접근 불가 – 보안상 필요)
- HTML에 데이터를 뿌려줍니다.
- web.xml에서 URL을 설정해주면 주소창에는 파일명이 표시되지 않습니다.(포워드방식)
*web.xml : FrontController(DispatcherServlet)에 대한 초기 설정을 하는 곳
프레임워크에서 설정은 .xml에서 합니다.
Spring MVC 웹 개발 시 필요한 Class
- ControlServlet Class : Controller의 역할을 수행하는 Master Servlet
- ActionFactory Class : 사용자의 요청을 처리할 비즈니스 로직이 구현된 XXXAction 객체의 생성을 담당
- Action Class : 모든 XXXAction 클래스가 구현할 Interface
- XXXAction Class : Action 인터페이스의 메소드를 재정의하고 있는 클래스(실질적인 비즈니스 로직의 구현체)
- ActionForward Class : XXXAction의 비즈니스 로직 수행 후 ControlServlet에게 반환하는 객체
(이동할 URL과 이동방법(포워드/리다이렉트)을 저장)
커맨드방식(CMD방식)
예) write.jsp, list.jsp ->.jsp까지 안쓰겠다는 것
localhost/0527/index.jsp?cmd=wirte
localhost/0527/index.jsp?cmd=list :
'프로그래밍 > Spring Framework' 카테고리의 다른 글
Apache Maven project configuration - 메이븐 설정 (0) | 2014.10.14 |
---|---|
Spring IDE plug-in install in Eclipse Java EE keppler - 스프링 IDE플러그인 (0) | 2014.10.14 |
Spring MVC Flow (0) | 2014.10.14 |
ModelAndView Class (0) | 2014.10.14 |
Spring의 기본개념이해 (0) | 2014.09.11 |