스프링 - Life Cycle 


1. 클라이언트 요청에 대한 최초 진입 지점  !!(DispatcherServlet) 


2. DispatcherServlet 은 Spring Bean Definition 에 설정되어있는 Handler Mapping 정보를 참조하여


해당 요청을 처리하기 위한 Controller 를 찾는다.


3. DispathcerServlet 은 선택된 Controller를 호출하여 클라이언트가 요청한 작업을 처리한다.

4. Controller는 Business Layer와의 통신을 통하여 원하는 작업을 처리한 다음 요청에 대한 성공유무에 따라 

Model And View 인스턴스를 반환한다. ModelAndView 클래스에는 UI Layer 에서 사용할 Model 데이터와

UI Layer로 사용할 View에 대한 정보가 포함되어 있다.

5. DispatcherServlet 은 ModelAndView의 View의 이름이 논리적인 View의 정보이면 ViewResolver를 

   참조하여 이를 논리적인 View정보를 실질적으로 처리해야할 VIew를 생성하게된다.

   DispatcherServlet은 ViewResolver를 통하여 전달된 View에게 ModelAndView를 전달하여

   마지막으로 클라이언트에게 원하는 UI 를 제공할 수 있도록 한다. 마지막으로 클라이언트에게 UI를 제공할 책임은 View클래스가 담당 



클라이언트의 요청이 DispatcherServlet에 전달되서 HandlerMapping을 사용하여 클라이언트의 요청을 처리할 Controller 객체를 선택합니다.


Controller 객체는 비즈니스 로직을 호출해서 처리하고 요청 처리 결과 정보를 ModelAndView 객체를 리턴합니다.


DispatcherServlet은 넘겨받은 ModelAndView 객체를 이용해서 ViewResolver로부터 응답 결과를 출력할 뷰 객체를 구해서 출력합니다.




1. 클라이언트의 요청을 받을 DispatcherServlet을 web.xml에 등록

2. 클라이언트의 요청을 처리할 Controller 클래스를 생성

3. ViewResolver를 설정

4. JSP나 HTML 또는 Velocity를 이용해서 출력 코드 작성 


이 기본 라이프 사이클이라는 가정 


프로젝트 기준으로는 


1. web.xml 들어가서  Dispatcher  설정 







servelt-name 은 WEB-INF 에 appServlet폴더에 맞춰서 되어있고

url-pattern 은 *.do주어서


test.do sample.do 같은 액션으로 컨트롤러에서 받아서 사용할수 있도록  변경 

// 컨트롤러에 대한 개념은 다시 설명 


2. appServlet -> servlet-context.xml 설정 





새로운 패키지 작성 kr.or.testcontroller (의 내부에 있는 testController를 동작하게 하기 위해서는


context:component-scan base-package ="kr.or.testcontroller" 를 추가해주어야 한다.


필자는 html 파일도 열어야 하기 때문에 (스프링에서 html 파일 열기가 자주하시는 분들이 없어서 그런가 찾아서 했다.)


webapp 폴더 바로 밑에 html폴더를 하나 만들고 intro.html을 열기 위해서 


<resources mapping="/html/**" location="html/"/> 을 추가해주었다.   // 그래야 리소스 폴더로 인식하고 리다이렉트가 가능


// 멀티 리졸버 라는 기능을 사용하시는 분들도 있던데 알면 좋켔다.. p:order에서 에러가 나버려서;;;



3. Controller 작성 



2에 작성 되었던 base-package에 대한 컨트롤러를 작성한다.



패키지에 일반 자바 클래스 생성후 


@Controller 로 Annotation 을 설정 한다.

이후 해당 클래스 내부 함수에 


@RequestMapping 설정 후 위와같이 입력 test.do 에 대한 값이 진행시(*.do)


반환값으로 redirect:/html/index.html 을 하는 모습을 볼수있다. 위에 화면엔 가려져있지만 사실 index.html이 있음


// 위에 <resources:~~~~/> 추가 때문에 html폴더를 리소스 폴더로 인식하고 리다이렉트시 해당 파일을 열수 가 있다.













'개발일지(Platform & Library) > Spring' 카테고리의 다른 글

6. Spring 기본 세팅 - 2 (테마 및 유효성 검사)  (0) 2016.09.28
4. Spring (개요 - 2) IOC 및 DI  (0) 2016.09.26
3. Spring (프로젝트 생성)  (0) 2016.09.26
2. Spring(개요)  (0) 2016.09.26
1. Spring(이해)  (0) 2016.09.26

+ Recent posts