오늘은 처음으로 Spring mvc를 접해보겠습니다. 먼저 Spring mvc의 라이프사이클을 살펴보겠습니다.
추천 과정: Java 튜토리얼.
먼저 브라우저가 요청을 보내고 우리 프로젝트는 봄에 DispatcherServlet이라는 서블릿을 통해 요청을 받습니다.
요청을 받은 후 이 서블릿은 이 서블릿을 처음 로드하는지 확인합니다. 이 서블릿을 처음 로드하는 경우, dispatcherServlet은 이때 몇 가지 초기화 작업을 수행합니다.
dispatcherServlet은 HandlerMapping을 초기화합니다(참고: 각 컨트롤러 프로세서에 대한 클라이언트 요청 매핑을 처리합니다)
dispatcherServlet은 HandlerAdapter를 초기화합니다(참고: HandlerMapping은 이를 기반으로 컨트롤러에서 실행해야 하는 메서드를 호출합니다)
dispatcherServlet은 handlerExceptionResolver를 초기화합니다. (참고: 스프링 mvc 처리 프로세스에서 예외가 발생하면 예외 처리를 위해 예외가 전달됩니다.)
dispatcherServlet은 ViewResolver를 초기화합니다. (참고: HandlerAdapter는 결국 반환 값을 패키지화합니다. 컨트롤러에서
ModelAndView를 호출하면 ViewResolver가 뷰를 확인합니다. 뷰가 문자열인 경우 문자열을 처리하고 실제 뷰를 반환합니다.
뷰가 실제 뷰인 경우 처리를 위해 전달되지 않습니다.)
위가 초기화된 후 DispatcherServlet은 요청을 컨트롤러 객체에 매핑하기 위해 하나 이상의 handlerMaprring을 쿼리하기 시작합니다
현재 찾을 수 없음 컨트롤러 개체는 예외를 발생시킵니다
컨트롤러 개체가 발견되면 요청은 인터셉터 체인의 preHandle에 의해 처리되고 handlerAdapter
를 통해 컨트롤러 개체의 특정 메서드와 일치됩니다. 그런 다음 이 메서드는 요청을 처리하는 비즈니스 논리를 기반으로 합니다. 비즈니스 논리 처리가 완료된 후 컨트롤러는 ModelAndView 개체를 가져옵니다(참고: 이 클래스의 vie
속성은 개체 유형입니다. 뷰 이름 또는 실제 뷰일 수 있습니다.) 이 ModelAndView를 가져온 후 Spring은 ModelAndView의 viewName이 문자열 유형인지 확인하고 ModelAndView의 getView 메서드를 직접 호출합니다. 해당 페이지를 찾아서 DispatcherServlet에 정보를 반환합니다. 문자열 유형이 아닌 경우 viewName을 기반으로 ViewResolver로 이동하여 이름을 찾은 다음 해당 페이지를 확인한 다음 페이지를 Dispatcherserlvet에 반환합니다
마지막으로 DispatcherServet은 페이지를 브라우저에 반환합니다.
위 내용은 Spring MVC 라이프사이클이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!