반응형

 

 

 

 

1. MVC Pattern

Model : 결과 데이터

View : UI

Controller : Request 처리, Request/Response 데이터 전달

 

 

 

2. Spring MVC 

: MVC Framework(spring-webmvc)

-> Spring DI, AOP 이용가능

 

🔑 MVC 모델

1. MVC 모델 1과 MVC 모델 2의 차이점에 대해 설명하시오.

👉🏻 MVC 모델 정리 포스팅

👉🏻 MVC란 Model, View, Controller의 줄임말로써, MVC는 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 의미합니다. MVC 모델 1은 웹 브라우저의 요청을 JSP 페이지가 받아서 처리 하는 구조입니다. JSP 페이지 안에서 모든 정보를 표현(view)하고 저장(model)하고 처리(control)되므로 재사용이 힘들고, 읽기도 힘들어 가독성이 떨어집니다. 주로 중소형 프로젝트에 적합한 모델입니다. MVC 모델 2는 모델 1과 달리 웹 브라우저의 요청을 하나의 서블릿이 받게 됩니다. 서블릿은 웹 브라우저의 요청을 알맞게 처리한 뒤, 그 결과를 JSP로 포워딩 합니다. 처리 작업의 모듈화로 유지보수가 쉬워지는 반면 개발 시간이 늘어난다는 단점을 가지고 있습니다. 

(+) Spring MVC 모델 2

👉🏻 스프링 MVC 프레임워크는 스프링이 제공하는 트랜잭션 처리, DI, AOP를 손쉽게 사용할 수 있습니다.
다른 MVC 프레임워크와 마찬가지로 컨트롤러를 사용하여 요청을 처리합니다. 스프링에서는 DispatcherServlet이 MVC에서의 컨트롤러(Controller)부분을 처리합니다. 

 

💡 구성 요소

구성 요소 설명
DispatcherServlet 클라이언트의 요청을 전달받아 요청에 맞는 컨트롤러가 리턴한 결과값을
View에 전달하여 알맞은 응답을 생성한다.
HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정한다.
Controller 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에 리턴한다.
ModelAndView 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
ViewResolver 컨트롤러의 처리 결과를 생성할 뷰를 결정한다.
View 컨트롤러의 처리 결과 화면을 생성, JSP 또는 Velocity 템플릿 파일 등을 뷰로 사용한다.

출처 : 동덕여자대학교 소프트웨어시스템개발 수업

 

 

 

3. 개발 과정

step 1) DispatcherServlet 설정

: Client로부터 request를 전달받는 servlet 객체(front controller)

: web.xml 설정 

 

 

step 2) HandlerMapping 설정

: Request를 처리할 handler(controller and method) 선택

[디폴트] /WEB-INF/[name]-servlet.xml

 

 

Step 3) Controller 구현 및 설정

- Annotation 기반 controller

: @Controller (자동 bean scan 대상)

: @RequestMapping (사용자 정의 메소드를 특정 request URL에 대한 handler method로 지정)

 

 

 

step 4) ViewResolver 

: 논리적인 view 이름에 대해 물리적인 view 객체 생성

 

 

 

step 5) View 구현

: JSP 등을 사용하여 View page 작성

 

 

 

 

 

 

4.  Javacode 기반 설정

 

 

 

 

 

 

5. ContextLoaderListener

- Root container

 

 

 

 

 

6. HandleMapping

: Request를 처리할 handler(controller) 객체 선택

- RequestMappingHandler : @Controller and @RequestMapping 어노테이션 이용하여 handler 객체 선택

 

- URL matching pattern

* Ant pattern

? (한 개의 문자), * (0개 이상의 문자와 매칭), ** (0개 이상의 디렉토리와 매칭)

 

 

 

7. Controller 구현 : HTTP 전송 방식 지정

1) method 속성

 

 

 

 

2) @GetMapping, @PostMapping 이용

 

 

 

 

8. Request Param 추출 

 

1) HttpServletRequest 이용

 

 

 

2) @RequestParam

 

 

3) @PathVariable

 

 

3) @RequestHeader

4) @CookieValue

 

 

5) Servlet API

 

 

 

 

 

9. Command 객체를 통한 Form 입력 처리

: HTML Form 에 입력된 데이터를 자바빈 객체를 통해 입력 받음

 

- View 에서 command 객체 접근

 

- @ModelAttribute로 객체 이름 지정

 

- 여러 개

 

반응형

+ Recent posts