'struts2'에 해당되는 글 7건
- 2008.12.22 [Struts2] Architecture
Struts2의 Architecture
Architecture 흐름도(움직임)
①액션요청처리의 시작점은 FilterDispatcher(즉,Controller)이다
1)요청(HttpServletRequest) => FilterDispatcher는 ActionMapper의 도움을 받아 보내진 요청이 스트럿
츠2 액션을 위한 요청인지의 여부를 판단 => 액션요청으로 판단되면,
2)FilterDispatcher은 ActionProxy(대행자)에게 제어권을 위임한다.
1)요청(HttpServletRequest) => FilterDispatcher는 ActionMapper의 도움을 받아 보내진 요청이 스트럿
츠2 액션을 위한 요청인지의 여부를 판단 => 액션요청으로 판단되면,
2)FilterDispatcher은 ActionProxy(대행자)에게 제어권을 위임한다.
②ActionProxy(대행자)는 ActionInvocation(실행자)생성.환경설정관리자를 참조한다.
(환경설정관리자는 struts.xml를 통해 초기화)
③ActionInvocation(실행자)는 Action실행전에 Interceptor호출.
Action실행 후 반환시 적절한 Result실행. ActionInvocation은 struts.xml에 매핑되어 있는 ActionResult
실행.Interceptor역순으로 반환.
④web.xml에 정의된 필터를 통해 응답(HttpServletResponse)이 반환된다.
⑤ActionContextCleanUp(fillter)는 web.xml에 정의되어 있다.만약 이것이 정의되어 있지 않다면
FilterDispatcher이 쓰레드 로컬을 비우지만, 정의되어 있을시 FilterDispatcher이 ThreadLocal
ActionContext를 비우지 않는다.
(즉,struts아키텍처 밖에 있다는 말: Sitemesh와 같은 Layout프레임워크인 경우 struts에서 처리된 결과
값을 가지고 화면에 배치하는 프레임워크이다. 따라서 struts밖에 설정되어 있고 그 화면배치 처리 후
Context를 청소하게 되는 것이다. *ActionContextCleanUp은 사이트 메쉬를 위한 것!필수사항은 아니
다.)
(환경설정관리자는 struts.xml를 통해 초기화)
③ActionInvocation(실행자)는 Action실행전에 Interceptor호출.
Action실행 후 반환시 적절한 Result실행. ActionInvocation은 struts.xml에 매핑되어 있는 ActionResult
실행.Interceptor역순으로 반환.
④web.xml에 정의된 필터를 통해 응답(HttpServletResponse)이 반환된다.
⑤ActionContextCleanUp(fillter)는 web.xml에 정의되어 있다.만약 이것이 정의되어 있지 않다면
FilterDispatcher이 쓰레드 로컬을 비우지만, 정의되어 있을시 FilterDispatcher이 ThreadLocal
ActionContext를 비우지 않는다.
(즉,struts아키텍처 밖에 있다는 말: Sitemesh와 같은 Layout프레임워크인 경우 struts에서 처리된 결과
값을 가지고 화면에 배치하는 프레임워크이다. 따라서 struts밖에 설정되어 있고 그 화면배치 처리 후
Context를 청소하게 되는 것이다. *ActionContextCleanUp은 사이트 메쉬를 위한 것!필수사항은 아니
다.)
Struts1 vs Struts2:환경설정파일 비교
①Struts1:struts-config.xml
=>어떤 Action을 호출할 지 미리 로드 하고 있다.
②Struts2:struts.xml
=>환경설정 파일 있지만, 미리 로드하지 않는다.
ActionMapper가 FilterDispatcher가 어떤 Action을 호출할지 여부를 판단할 수 있도록 도움을 준다.
①Struts1:struts-config.xml
=>어떤 Action을 호출할 지 미리 로드 하고 있다.
②Struts2:struts.xml
=>환경설정 파일 있지만, 미리 로드하지 않는다.
ActionMapper가 FilterDispatcher가 어떤 Action을 호출할지 여부를 판단할 수 있도록 도움을 준다.
⊙Sitemesh(Layout Framework)
⊙AOP:여기서 Interceptor가 AOP, 즉 관점지향의 개념이다.
예를 들어 '보안'이 필요한 곳이 생길때 마다 몽땅 코드를 넣는 것이 아니라, '횡적'인 방향으로
'보안'이라는 개념적인 하나의 흐름을 만드는 것!
⊙AOP:여기서 Interceptor가 AOP, 즉 관점지향의 개념이다.
예를 들어 '보안'이 필요한 곳이 생길때 마다 몽땅 코드를 넣는 것이 아니라, '횡적'인 방향으로
'보안'이라는 개념적인 하나의 흐름을 만드는 것!
'JAVA/JSP > Struts2' 카테고리의 다른 글
[Struts2] StartingStruts2(pdf) (0) | 2008.12.22 |
---|---|
[Struts2] 파일별 기본 역활과 개념 (0) | 2008.12.22 |
[Struts2] struts.properties (0) | 2008.12.22 |
[Struts2] struts.xml 이란? (0) | 2008.12.22 |
[Struts2] web.xml설정과 위치 (0) | 2008.12.22 |