이러쿵저러쿵


15) 스프링 MVC 프로세스

 

* 스프링 MVC 프로세스 모델

 

 

 

 

* 스프링 MVC의 주요 구성 요소
1) DispatcherServlet : 클라이언트의 요청을 전달 받는 역할. 컨트롤러(Controller)에게 클라이언트의 요청을 전달하고, 컨트롤러가 리턴한 결과 값을 뷰(View)에 전달하여 알맞은 응답을 생성하도록 함. (스프링 제공)
2) HandlerMapping : 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정. (스프링 제공)
3) Controller : 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServle에 알려준다. (실제 로직을 담당)
4) SQL 쿼리를 통한 데이터 질의문 전달.
5) 데이터베이스가 반환(Return)한 데이터 획득.
6) ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음.
7) ViewResolver : 컨트롤러의 처리 결과를 생성할 뷰를 결정. (스프링 제공)
8) View : 컨트롤러의 처리 결과 화면을 생성 (Freemarker 등)


 

*  스프링 MVC 구조 및 처리 순서
1) 클라이언트의 요청이 DispatcherServlet에 전달됨.
2) DispatcherServlet은 HandleMapping을 사용하여 클라이언트의 요청을 처리할 컨트롤러(Controller)를 검색.
3) 매치되는 컨트롤러가 있다면 요청을 해당 컨트롤러에게 전달.
    DispatcherServlet은 컨트롤러 객체의 handleRequest() 메서드를 호출하여 클라이언트 요청을 처리 .
4) DB 관련 처리 (DB 질의 요청)

5) DB 관련 처리 (DB 질의 결과)
6) 컨트롤러의 handlerRequest()메서드는 처리 결과 정보를 담은 ModelAndView 객체를 리턴.
7) DispatcherServlet은 ViewResolver로부터 응답 결과를 생성할 뷰 객체를 구함.
    JSP, Velocity, Freemarker 등 다양한 뷰를 지원.
    - AbstractCachingViewResolver

    - XmlViewResolver

    - ResourceBundleViewResolver

    - UrlBasedViewResolver

    - InternalResourceViewResolver

    - FreeMakerViewResolver

    -  ViewResolvers Chaining
8) 뷰는 클라이언트에 전송할 응답을 생성.

 

 

 

 

이것으로 스프링 프레임워크의 기본 개념 강좌를 마칩니다. 읽어주셔서 감사합니다^^

 

 

- 참고 문헌 및 사이트 -

* 토비의 스프링 3.1 (이일민)
* Spring in Action 제3판 (크레이그 월즈)

* 스프링3 입문 (하세가와 유이치, 오오노 와타루, 토키 코헤이)
* New Lecture – Spring 3 MVC 웹 프로그래밍 (newlecture.com)
* 위키피디아 (wikipedia.org) – Spring, Patterns

 

 

 

 

저작자 표시 비영리 변경 금지
신고


Comment +7

  • sync 2015.06.03 11:33 신고

    간단하고 쉽게 쓰신 강좌 잘봤습니다. 요즘 사용을 안해서 가물가물한 부분들이 다시 정리되니 좋네요.

    • 안녕하세요. sync님.

      블로그를 방문해 주시고, 또 부족한 강좌 보시고 많이 도움이 되셨다니 감사합니다.^^

      제가 기억력이 별로 안좋아서 ㅎㅎㅎ 따로 이렇게 정리를 해두고 종종 찾아보지 않으면 한두달만 지나도 기억이 잘 안나더라구요.

      좋은 밤 되세요~

  • 구루메 2015.06.12 14:49 신고

    좋은 글 잘봤습니다. 스프링에 대해서 개론부터 간단하게 볼수 있어서 참 많은 도움이 되었네요.
    스프링 샘플 만듥기도 한번 해주시면 ^^ a

    • 안녕하세요. 구루메님^^
      블로그를 방문해주셔서 감사합니다.^^

      스프링에 대한 개론은 제가 이론 공부하면서 PPT 형태로 정리해본 내용인데요.^^ JAVA 경력도 길지 않고, 스프링에 대한 이해도 아직은 많이 부족한 개발자입니다. 그래서 종종 다시 읽어보고, 리마인드 시키지 않으면 금새 잊어버리더라구요. ㅎㅎ

      아직 실력이 많이 부족하여 이론 외에 기술적인 부분(실제 프레임워크 개발 및 코딩)까지 강좌를 진행할 수 있을지는 모르겠지만, 기회가 된다면 진행하도록 하겠습니다.^^

      좋은 주말 되시길 바래요~

  • 헥토르 2016.06.01 15:04 신고

    강좌 잘 봤습니다. 감사합니다~

  • all2n 2017.07.28 11:35

    관리자의 승인을 기다리고 있는 댓글입니다

티스토리 툴바