com.gauce.gsaf
Interface Action

All Known Implementing Classes:
GauceAction

public interface Action

가우스 서비스(jsp 페이지)가 실행되기 전에 클라이언트에서 서버로 전송된 데이터 셋에 대해 편리하게 업무로직에 반영하기 위한 전처리(Pre-processing)모듈이다. 하나의 서비스에 대해 여러개의 업무로직을 컴포넌트 형태로 저작하여 등록할 수 있다. 작성된 Actioin은 gsaf-config.xml에 등록된다.
이 인터페이스를 직접적으로 구현(implement)하여 Action을 만들 수도 있지만 GauceAction클래스를 상속하면 쉽게 Action을 만들 수 있다. 이 외에도 GauceAction에는 편리하게 사용할 수 있는 메소드 들이 존재한다.

Since:
4.0
Version:
4.0

Method Summary
 void destroy()
          action-chain에 등록된 Action들이 re-loading될 때 기존에 등록되어 있던 Action들에 대해 가우스 서버가 호출한 후 action-chain에서 삭제된다. init메소드와 마찬가지로 action-chain에서 Action이 제거될 때 최종적으로 한 번만 호출된다.
 java.lang.String getInfo()
          가우스 Action의 정보를 반환한다.
 void init(ActionConfig config)
          가우스 Action이 처음으로 생성되어 action-chain에 등록될 때 최초 한번만 호출되며 ActionConfig를 통해 action-chain에대한 정보를 획득할 수 있다.
 void invoke(HttpGauceRequest request, ActionChain chain)
          클라이언트에서 서비스를 호출할 때 가우스 서버는 gsaf-config.xml에서 해당 서비스의 action-chain에 등록된 Action들은 Request가 해당 서비스에 도달되기 전에 이 메소드를 호출한다.
 

Method Detail

getInfo

public java.lang.String getInfo()
가우스 Action의 정보를 반환한다.

Returns:
가우스 Action정보
Since:
4.0

init

public void init(ActionConfig config)
          throws javax.servlet.ServletException
가우스 Action이 처음으로 생성되어 action-chain에 등록될 때 최초 한번만 호출되며 ActionConfig를 통해 action-chain에대한 정보를 획득할 수 있다. 이 메소드를 override하는 클래스는 반드시 super.init(config)를 호출해야 한다. GauceAction클래스에서는 편의를 위해 파라미터가 없는 init메소드를 제공하며 필요할 경우 이 메소드를 이용하면 된다.

Parameters:
config - action-chain에 대한 정보를 획득할 수 있는 ActionConfig, 이 인터페이스를 이용하여 ServletContext도 획득할 수 있으며 따라서 서블릿과 유연한 연동을 제공한다.
Throws:
javax.servlet.ServletException - init메소드에서 서블릿과 관련된 오류가 발생할 경우
Since:
4.0

invoke

public void invoke(HttpGauceRequest request,
                   ActionChain chain)
            throws java.io.IOException,
                   javax.servlet.ServletException
클라이언트에서 서비스를 호출할 때 가우스 서버는 gsaf-config.xml에서 해당 서비스의 action-chain에 등록된 Action들은 Request가 해당 서비스에 도달되기 전에 이 메소드를 호출한다. 따라서 비즈니스 로직에 해당하는 부분을 이 메소드를 통해 구현할 수 있다.
등록된 Action들은 체인을 형성하기 때문에 이 메소드에서 처리가 완료되면 ActionChain을 통해 다음 Action이 동작할 수 있도록 invokeNext메소드를 반드시 호출해야 한다. 만약 이 메소드를 호출하지 않을 경우 Action 체인은 현재의 Action에서 종료가 되며 이 후의 Action은 수행하지 않게된다.

Parameters:
request - 클라이언트(컴포넌트)에서 요청된 Request객체, HttpServletReqeust를 상속받은 인터페이스이기 때문에 HttpServlet에 있는 메소드는 동일한 방법으로 사용할 수 있다.
chain - 현재 Action이 등록되어 있는 Action체인을 나타낸다. 이 메소드에서 처리가 완료되면 다음 Action의 처리를 위해 invokeNext메소드를 호출한다.
Throws:
java.io.IOException - Action에서 업무로직을 처리하는 동안 IO와 관련된 오류가 발생할 경우
javax.servlet.ServletException - 서블릿과 관련된 오류가 발생할 경우
Since:
4.0

destroy

public void destroy()
action-chain에 등록된 Action들이 re-loading될 때 기존에 등록되어 있던 Action들에 대해 가우스 서버가 호출한 후 action-chain에서 삭제된다. init메소드와 마찬가지로 action-chain에서 Action이 제거될 때 최종적으로 한 번만 호출된다. 참고로 Action에서 전역으로 사용하고 있는 리소스를 해제하기 위해 이 메소드를 이용하면 유익하다.

Since:
4.0