■ Struts2의 작동 원리
Struts2 Framework Architecture Diagram
1. Client가 HttpServletRequest를 요청하면 FrontController인 FilterDispatcher가 받는다.
2. ActionMapper부터 ActionProxy 등을 거쳐 와서 Config 문서인 struts.xml 문서와 추가로 struts.properties 파일을 요구한다. struts.properties는 있으면 로딩하고 없으면 하지 않는다.(없어도 된다)
3. struts.xml과 strtus.properties문서를 Interceptor가 받아온다. 그리고 Client의 모든 Parameter를 가로챈다.
4. Interceptor 은 3단계로 나누어져 있다.
1단계에서는 Client의 모든 Paramter를 가로챈다.
2단계에서는 렌더링 역할을 수행한다.(언어 설정, 보안 설정 등)
3단계에서는 Action의 setter method 를 찾고, 데이터를 푸시하는 역할을 한다.(ActionForm이 필요없다)
5. Business Logic Controller인 Action에서 setter method 메소드를 받아서 비즈니스로직을 수행한다.
6. getter method를 통해 Result로 전달해주거나 받는다. Result에서 적절한 페이지를 선택한다. 이때 Template를 지정한다.(JSP, JSF, Velocity(확장자 : vm), FreeMarker(확장자 : ftl)) 적정할 Template를 잡아서 다시 Interceptor로 보낸다.(getter를 통해서 객체는 머든 상관없다)
7. 다시 역방향으로 간다. 1단계에서 Result에서 적절한 페이지를 선택할때, 그 페이지를 찾는다. 그리고 그 페이지의 Value Stack(그림에는 없음)을 갖고, Value Stack에다가 데이터를 넣주고 그냥 찍기만 하면 된다.(Spring의 setAttribute 필요없이 받을 수 있다)
Struts2의 기본적인 작동원리 끝!
'FrameWork > Struts2' 카테고리의 다른 글
Struts2에서 Tiles Plugin 사용하기. (1) | 2009.07.08 |
---|---|
Struts2 Interceptors(인터셉터) 1. (0) | 2009.07.07 |
Struts2 에서 upload & download 하기 3. (0) | 2009.07.07 |
Struts2 에서 upload & download 하기 2. (0) | 2009.07.07 |
Struts2 에서 upload & download 하기 1. (0) | 2009.07.06 |
Struts2 에서 session 처리하는 방법(로그인, 로그아웃 해보기). (0) | 2009.07.05 |
Struts2 에서 validator 사용하기. (0) | 2009.07.05 |
Struts2 Annotation type을 이용한 Action mapping (0) | 2009.07.05 |
Struts2 기본 환경설정 및 구현 해보기. (0) | 2009.07.04 |
Struts 2 란? (1) | 2009.07.01 |