#
오늘 MVC Spring, DB적용
다음시간에 DI적용하여 어플만듬
그다음시간에 AOP 등 마무리


#
ORM은 Object Relation Mapping : 즉, 다른 프레임워크와 연동하는 것.


#
Spring MVC
Model : 모델 자체가 컴퍼넌트, 컴퍼넌트 자체가 자바로 코딩한 비즈니스 로직.
View
Controller
모델과 뷰를 구분하고자 하는 형식이 MVC
여기서 모델이 주코드와 부코드로 나뉘게 됨.


#
<Spring MVC의 큰 흐름>

1.
Client에서 Dispatcher Servlet으로 가는건, web.xml에서 설정
(.do일때 이 서블릿으로 가라는걸 설정.)
서블릿은 요청을 처리해주고, 전체 관리하는 역할을 함.
Dispatcher 서블릿은 Spring에서 제시하는 서블릿.

2.
이때 .do로 통일하면 하나의 서블릿이기 때문에, 어떤 서비스를 해야할지 단서를 붙여서 호출해야 하는데
이걸 해주는게 Handler Mapping(기존 MVC에서는 'list.do?cmd=login' 이런식으로 처리했음)

3.
Dispatcher 서블릿에서 이 호출이 어떤 요청인지 Handler Mapping을 통해서 판단
(커맨드와 비즈니스 로직을 맵핑)

4.
 Controller는 기존MVC의 Action과 같은 역할.
컨트롤러에서 비즈니스 로직 등을 구현.
DI를 적용시켜서 로직, DB 등과 관련된걸 불러오고 처리.

5.
ActionForward를 통해서 ModelAndView를 설정하여 Dispatcher Servlet으로 넘김

6.
Dispatcher Servlet에서 ViewResolver를 불러서 어떤 뷰를 불러올지 결정


#
211.63.89.30

#
샘플로 만든 MVC프로젝트에서,
jsp에서 .do?cmd=login url 이동
=> web.xml에서 읽고 Action Servlet으로 가서 service 메서드 호출
=> ActionServlet에서 cmd를 받아서, getAction 호출
=> Action Factory의 getAction에서 cmd 값에 따라서 어떤 모델을 부를건지 결정
=> 이 받은 action을 가지고 action.execute 실행
=> execute를 ActionForWard가 받아서, true면 sendRedirect// false면 requestDispatcher 호출