struts로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts로 검색한 결과
등록일:2008-03-16 11:41:38
작성자:
제목:Struts 2 Tutorial - 03.Struts 2 아키텍쳐


본 튜토리얼은 제가 struts 2를 공부할 목적으로 아래의 원문에 링크된 문서를 번역하여 정리한 것입니다.
원문: http://www.roseindia.net/struts/struts2/struts-2-architecture.shtml



struts 2 프레임워크를 개발하기 위해서 struts와 webwork가 합쳐졌습니다. struts 2는 엔터프라이즈 웹 어플리케이션을 개발하기 위한 매우 확장성이 있고, 고상한 프레임워크입니다. 이 섹션에서 struts 2 프레임워크의 아키텍쳐를 설명합니다.

스트럿츠 2 어플리케이션에서의 Request 라이프사이클
  1. 사용자가 Request 전송
    - 사용자가 서버로 몇개의 리소스를 위한 요구사항을 전송한다.
  2. FilterDispatcher가 적절한 액션을 결정
    - FilterDispatcher 가 request를 살펴 본 후 적절한 액션을 결정합니다.
  3. Interceptors 적용
    - workflow, validation, file upload 등과 같은 공통적인 기능의 적용을 위해 설정된 Interceptors가 request에 자동으로 적용된다.
  4. Action 실행
    - 데이터베이스로부터 데이터를 저장하고 조회하는 등의 데이터베이스와 관련된 작업을 수행하기 위한 액션 메서드가 실행된다.
  5. Output 렌더링
    - 출력하기 위한 결과를 렌더링한다.
  6. Request 반환
    - 반대 순서로 Interceptors를 통해 request를 반환한다. 반환된 request는 클린업 작업이나 부가 프로세싱을 수행한다.
  7. 결과 표시
    - 마지막으로 컨트롤이 서블릿 컨테이너로 반환된다. 그리고 컨트롤은 사용자의 브라우저로 출력을 전송한다.

이미지: request 프로세싱의 스트럿츠 2 상위 레벨 개요


스트럿츠 2 아키텍쳐

스트럿츠 2는 자바 필터, 자바 빈즈, 리소스 번들, XML 등의 많은 표준 기술을 기반으로 만들어진 매우 고상하고 유연한 프론트 컨트롤러 프레임워크입니다.

모 델을 위해, 프레임워크는 JDBC, EJB, Hibernate 등의 데이터 접근 기술을 사용할 수 있고 뷰를 위해, 프레임워크는 JSP, JTL, JSP, Velocity, Templates, PDF, XSLT 등을 통합시킬 수 있다.

예외 처리

스트럿츠 2 프레임워크는 예외 처리자와 후보자를 정의하도록 허용한다.

* 예외 처리자(Exception Handlers)
예외처리자는 전역적이고 지역적인 예외 처리 절차를 정의한다.
프레임워크는 예외를 감지하고 그 때 적절한 메시지와 상세한 예외내용을 표시한다.

* 후보자 (Inspectors)
후보자는 액션의 request-processing lifecycle에 특화되어 사용한다. 후보자는 request의 workflow, validation 등의 일반적인 기능에 적용하기 위해서 설정된다.

스트럿츠 2 아키텍처
아래의 그림은 스트럿츠 2 프레임워크의 아키텍처를 묘사한다 그리고 톰캣과 같은 서블릿 컨테이너에서 request가 어떻게 초기화되는지를 보여준다. 그리고 그것은 표준 필터체인을 통과하게 된다.

이미지: 스트럿츠 2 아키텍처


필터 체인 (Filter Chain)은 아래의 것을 포함한다.

* Action ContextCleanUp Filter:
ActionContextCleanUp Filter는 선택적이다.
SiteMesh 플러그인과 같은 다른 기술과 통합되어 함께 사용해야 할 때 유용하다.

* FilterDispatcher:
다 음으로 FilterDispatcher가 호출된다. 이번에는 Action을 invoke를 하는지 안하는지를 결정하기 위해 ActionMapper를 사용한다. 액션이 invoked가 요구된다면, FilterDispatcher는 ActionProxy로 제어를 위임한다.

* ActionProxy:
ActionProxy는 sturts.xml 로 부터 초기화되는 설정 파일 관리자를 도와줍니다. 그 때 ActionProxy는 ActionInvocation을 생성하고 명령 패턴을 구현합니다. ActionInvocation은 (설정되어 있을경우) Interceptors invokes를 수행하고 그 때 action을 invokes합니다. ActionInvocation는 적절한 결과를 조사합니다. 그때 결과가 실행되고 그 결과는 JSP 혹은 템플릿의 렌덩링을 포함합니다.

그러고 나서 Interceptors는 반대의 순서로 다시 실행된다. 마지막으로 response는 web.xml 파일에 설정된 필터를 통해서 돌아온다. 만약 ActionContextCleanUp 필터가 설정되었다면, FilterDispatcher는 ThreadLocal ActionContext를 제거하지 않는다. 만약 ActionContextCleanUp 필터가 나타나지 않는다면 그 때 FilterDispatcher는 모든 ThreadLocals 을 말끔히 제거한다.

이번 섹션에서 스트럿츠 2 프레임워크의 아키텍처에 대해서 배웠다.