본문 바로가기

Web Programming

Spring MVC의 실행 흐름 정리

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



만든 프로그램을 살짝 리뷰를 해보자면, 일단 아래의 스크린 샷과 같은 페이지를 보기위해서 몇가지 절차를 거쳐야 한다. MVC 라는 패턴에 알맞게 Spring 또한 예쁘게 만들어준다.

먼저, 모든 서블릿의 기초가 되는 web.xml 파일 부터 건드려 주신다. 서블릿을 생성하기 위함이다.
여기서 서블릿의 역할을 하는 클래스는 DispatcherServlet 이라는 클래스로서 MVC에서는 C인 컨트롤러에 해당하는 클래스이다. web.xml에 선언을 해준다. 이것을 스프링 컨텍스트를 설정한다고 한다.

다음으로는 HandlerMapping 빈을 생성해 주어야한다. BeanNameUrlHandlerMapping 클래스를 통해서 생성해  줄 수 있다. [서블릿 이름]-servlet.xml 파일을 생성하여서 빈 객체를 선언해 준다.

이제 구체적으로 컨트롤러를 구현해야한다. AbstractController 라는 클래스를 상속받은 클래스를 생성하여 handleRequestInternal 메소드를 오버라이드 한다. 여기서는 ModelAndView클래스의 addObject 메소드를 통해 커스텀 태그 라이브러리를 만들어서 표현언어로 jsp에서 출력이 가능하도록 할 수 있다.

다음은 jsp 페이지를 만들면 된다.... 생각보다 아주 간단한 절차이다. 책에 있는 내용 그대로 설명하자면..

1. 클라이언트의 요청 -> DispatcherServlet
2. DispatcherServlet 가 BeanNameUrlHandlerMapping 클래스에게 컨트롤러 요청
3. BeanNameHandlerMapping 클래스는 원하는 도메인 리턴
4. Dispatcher -> Controller에 전달
5. ModelAndView 작성 -> 매핑이되는 View 객체를 요청
6. View 리턴 -> DispatcherServlet 은 응답 생성 요청 -> InternalResourceView에 의해 응답 생성