DBILITY

Spring Dispatcher Servlet workflow 본문

java/spring

Spring Dispatcher Servlet workflow

DBILITY 2017. 9. 7. 13:16
반응형

개발시 표준프레임워크가 제공된다고 해서 동작방식도 모르고 단순작업만 하다보면 인생 또한 참으로 단순해 진다.

나처럼 말이다.

모든 사용자의 요청(즉, 웹 URL)을 프론트 컨트롤러라는 서블릿 하나가 받아들인 후 URL에 따라 실제 처리를 담당하는 컨트롤러로 요청을 넘김. 

Spring에서는 프론트 컨트롤러는 디스패처 서블릿이라고 하고,컨트롤러는 핸들러라고 한다.

 

 

사용자의 웹 요청이 URL 매핑에 의해 디스패처서블릿으로 들어오면,

 

1.디스패처서블릿은 핸들러 인터셉터의 preHandle() 메서드를 호출한다. 핸들러 인터셉터는 Spring 사용자가 등록해놓은 사용자정의(custom) 클래스다.

2.디스패처서블릿은 URL에 대응하는(매핑된) 핸들러(컨트롤러)의 메서드를 호출해 업무 로직을 처리하게 한다.

3.디스패처서블릿은 핸들러 인터셉터의 postHandle() 메서드를 호출한다.

 (1 ~ 3 과정에서 오류(예외)가 발생하면 핸들러 예외 해석기 클래스의 resolveException() 메서드를 호출한다.

 핸들러 예외 해석기는 Spring 사용자가 등록해놓은 사용자정의(custom) 클래스다.)

4.디스패처서블릿은 뷰를 처리한다. 일반적으로 jsp include 또는 forward나 redirect가 발생하는 단계다.

5.디스패처서블릿은 핸들러 인터셉터의 afterCompletion() 메서드를 호출한다.

6.디스패처서블릿은 해당 웹 애플리케이션 컨텍스트에 서블릿 요청 처리됐음 이벤트를 발생시킨다

 

반응형
Comments