■ 인터셉터의 종류
인터셉터 |
설 명 |
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 메소드 호출을 포함하는 복잡한 스택을 제공한다. -. 먼저 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 |
-. 실행과 대기 스택을 제공한다. 이러한 기능은 파일 업로드와 같이 처리결과를 보여주기까지 시간이 오래 걸리는 기능을 수행할 때 유용하다. -. 사용자에게 특정한 수행중이라는 메시지를 화면에 보여 줄 수 있다. |
※ 인터셉터는 스택으로 설정된 순서대로 호출된다는 것을 유념한다.
'Struts > Struts Programming' 카테고리의 다른 글
[Oracle] ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (0) | 2013.09.25 |
---|---|
[Struts] 스트럿츠 2의 핵심 기능 (0) | 2012.11.06 |
[Struts] 커스텀 인터셉터 (0) | 2012.09.11 |
[Struts] 인터셉터란? (0) | 2012.09.11 |
[Struts] 인터셉터란? (0) | 2012.09.11 |