이미지 출처 [http://agapeuni.tistory.com/313]
Structs 동작원리
1. Client로부터 request가 들어오면 struts의 생명주기가 시작된다. (즉 Struts가 시작된다.)
Servlet Container는 이 request를 표준 filter chain으로 전달합니다.
2 FilterDispatcher라는 Filter가 호출됩니다. 이 Filter는 ActionMapper를 참조해서
Action을 호출할지 안할지 결정합니다.
3 만약 ActionMapper가 호출해야할 Action을 찾으면 FilterDispatcher는 ActionProxy에게
통제권을 넘겨줍니다.
4 ActionProxy는 'Struts.xml'과 같은 설정 ( Configuration ) file을 읽어서 ActionInvocation class를 생성한 후
통제권을 넘겨줍니다.
5 ActionInvocation은 필요할 경우 Interceptor 를 하나씩 호출한 후, 처음에 호출하기로
결정한 Action을 호출합니다.
(Interceptor는 Logging, Validateion, File Upload, Double-submit guard 등 struts2 에서 제공하는 특정 역할을 수행합니다.)
6 이 Action의 결과값이 반환되면 ActionInvocation은 struts.xml에 정의된 결과 Page를 찾는다.
(Page는 결국 response가 된다.)
7 Action 호출전에 호출되었던 Interceptor를 역순으로 다시 하나씩 호출한후, response를
Filter(대부분 FilterDispatcher) 넘겨준다.
이후 결과가 servlet Container에 넘겨지고 결국 Client에게 보여진다.
'Framework > Struts2' 카테고리의 다른 글
Struts2 validation 예제 (0) | 2011.11.03 |
---|---|
Struts2 Validation (0) | 2011.11.03 |