본문 바로가기

Struts/Struts Programming

[Struts] 인터셉터의 종류

반응형

■ 인터셉터의 종류

인터셉터

설                           명

alias

 -. 앨리어스 인터셉터는 액션이 실행될 때 넘어온 요청 파라미터의 이름을 다른 이름으로 사용할 수 있도록 한다.

chaining

 -. 체인 인터셉터는 이전에 실행된 액션의 속성을 현재 액션에서 사용하도록 한다.

    많은 경우 이 인터셉턴느 리절트 체인(result chain)과 함께 사용된다.

checkbox

 -. 체크박스가 체크되지 않은 상태에서도 체크박스의 상태값을 넘겨줄 수 있도록 한다.

 -. 체크를 하지 않은 체크박스는 false 상태로 인식한다.

conversionError

 -. 타입 변호나 오류가 발생한 경우 오류 메시지를 등록한다.

debugging

 -. 개발자에 따라 커스터마이즈된 다양한 디버깅 화면을 제공한다.

exeAndWait

 -. 백그라운드에서 액션이 실행되는 동안에 사용자로 하여금 잠시 대기하도록 하는 화면을 보여주는 인터셉터이다.

 -. 최근 웹 사이트에서 많이 사용된느 추세이다.

 -. 특히 완성도 높은 상업용 웹 사이트인 경우 화면이 전환되는 상황에서 조금이라도 지연되는 경우

    사용자에게 대기 화면을 보여주는 것이 일반적이다.

exception

 -. 액션이 실행중에 발생한 예외 케이스에 대해 결과에 반영한다.

 -. 자동으로 예외 처리 핸들러에 리다이렉션(redirec-tion)을 하도록 한다.

fileUpload

 -. 파일 업로드 기능을 지원하는 인터셉터이다.

i18n

 -. 사용자 세션에 따라서 선택된 지역화 설정을 유지한다.

store

 -. ValidationAware 인터페이스를 구현함으로써 메시지를 저장하고 검색한다.

 -. 필드 에러나 액션에서 발생한느 에러 메시지를 저장한다.

scoped Model Driven

 -. ScopedModelDriven 인터페이스를 구현하는 액션을 위해서

    특정 스코프에 해당하는 모델 객체를 저장하고 검색하는 기능이다.

profile

 -. 액션에 로깅될 프로파일 정보를 제공한다.

scope

 -. 세션 또는 애플리케이션 스코프에서 액션의 상태를 저장하고 검색한다.

servletConfig

 -. 다양한 서블릿 기반 정보에 대해 접근하는 액션을 제공한다.

staticParams

 -. 정적으로 정의된 값을 액션에 설정한다. 예를 들면, 액션 설정시

    param 태그를 사용하여 설정한 값들이 이에 해당한다.

roles

 -. 현재 유저가 설정된 역할중 하나에 해당할 때에만 액션이 실행되도록 한다.

token

 -. 중복도니 폼 전송을 방지하기 위해서 올바른 토큰을 가지고 있는지를 체크한다.

 -. 이러한 기능은 인터넷 웹 사이트에서 전자결제를 구현할 때 많이 사용된다.

 -. 특히, 인터넷으로 결제 기능을 제공하는 경우 사용자가 결제 버틍을 두 번 누름으로써

    신용카드 결제가 여러번 이루어지는 경우가 종종 발생한다.

    이를 방지하기 위해서 token 인터셉터를 사용한다.

tokenSession

 -. 토큰과 유사하다. 하지만, 올바르지 않은 토큰이 주어진 경우는 전송된 데이터를 세션에 저장한다.

validation

 -. 액션에 전달한 데이터를 검증하는 방법을 제공한다.


 -. 인터셉터는 액션 실행에 있어 중요한 역할을 한다.

 -. 사용자 요청을 처리하는 과정에서, 특정한 액션이 실행되는 동안 내부적으로는 최소 하나 이상의 인터셉터가 동작한다.

 -. 스트럿츠 2는 이러한 과정에서 생성되는 인터셉터들을 스택 형태로 쌓아 올리고 액션에서 참조하도록 한다.

 -. 이러한 방법은 각 액션이 필요로 하는 인터셉터들을 각각 별도로 매핑하는 방법에 비해 매우 효율적이다.


인터셉터 스택

인터셉터

설명

BasicStack

Exception, servletConfig, prepare, checkbox,

params, conversionError

 -. 최소 환경에서 사용될 인터셉터들이다.

validation Work-flowStack

basicStack, validation, workflow

 -. 이전에 실행된 액션의 속성을 현재 액션에서

    사용하도록 한다. 많은 경우 이 인터셉터는 결과 타입

    (result type) 'chanin'과 함께 사용된다.

fileUploadStack

fileUpload, basicStack

 -. 기본 스택에 파일 업로딩 기능을 추가한다.

modelDrivenStack

modelDriven, basicStack

 -. 기본 스택에 모델 기능을 추가한다.

chainStack

chain, basicStack

 -. 기본 스택에 체인 기능을 추가한다.

i18nStack

i18n, basicStack

 -. 기본 스택에 지역화 유지 기능을 추가한다.

paramPrepareParamsStack

Exception, alias, params, servletConfig,

prepare, i18n, chain, modelDriven, filUpload,

checkbox, staticParams, params,

conversionError, validation, workflow

 -. Pre-action 메소드 호출을 포함하는 복잡한

    스택을 제공한다.
 -. Params 인터셉터는 두 번 적용된다.

 -. 먼저 prepare( ) 메소드가 호출되기 이전에

    파라미터를 제공하며,

   두 번째는 prepare 단계에서 검색된 객체들에게

   파라미터를 다시 제공하려할 때 사용된다.

defaultStack

Exception, alias, servletConfig, prepare,

i18n, chain, debugging, profiling, modelDriven,

scoped, ModelDriven, fileUpload, checkbox,

staticParams, params, conversionError,

validation, workflow

 -. 디버깅과 프로파일링을 포함하는 완전한 스택 기능을

    제공한다.

executeAndWaitStack

execAndWait, defaultStack, exeeAndWait

 -. 실행과 대기 스택을 제공한다. 이러한 기능은 파일

    업로드와 같이 처리결과를 보여주기까지 시간이

    오래 걸리는 기능을 수행할 때 유용하다.

 -. 사용자에게 특정한 수행중이라는 메시지를

    화면에 보여 줄 수 있다.

 ※ 인터셉터는 스택으로 설정된 순서대로 호출된다는 것을 유념한다.

반응형