Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## tle.framework.component.impl.ra
Class DefaultRequestAnalyzer

    java.lang.Object
      tle.framework.component.impl.ComponentBase
          tle.framework.component.impl.ra.DefaultRequestAnalyzer

All Implemented Interfaces:
  Component, ComponentMBean, DefaultRequestAnalyzerMBean, RequestAnalyzer

public class DefaultRequestAnalyzer
extends ComponentBase
implements RequestAnalyzer, DefaultRequestAnalyzerMBean

명령어 ID는 요청 URI로부터 추출한다.

업로드한 파일의 경우는 Jakarta-Commons의 FileUpload API를 사용해서 처리한다.

TLEFramework의 초기 설정 파일의 "configFile" 초기화 파라미터로 명시한 파일로부터 초기 설정 정보를 읽어온다. 만약 "configFile" 초기화 프로퍼티를 명시하지 않았을 경우에는 사용자 홈 디렉토리의 "DefaultRequestAnalyzer.properties" 파일을 사용한다.

초기 설정 파일이 존재하지 않을 경우 초기값을 다음과 같이 설정한다.

- tempDir - "user.home" 폴더
- max - -1
- encoding - 시스템 기본 인코딩

Since:
  2.0
Author:
  최범균

Field Summary

Fields inherited from class tle.framework.component.impl.ComponentBase
`componentState, config`

Constructor Summary
`DefaultRequestAnalyzer()`

Method Summary
`RequestInfo` | `analyzeRequest(HttpServletRequest request, HttpServletResponse response)` Jakarta Commons FileUpload API의 FileUpload.isMultipartContent(request)를 실행하여 인코딩 타입이 multipart/form-data 이면 FileUpload API를 통해서 RequestInfo 인스턴스를 생성한다.
`java.lang.String` | `getEncoding()` 업로드 데이터의 인코딩을 구한다.
`long` | `getMax()` 업로드 파일의 최대 크기를 구한다.
`java.lang.String` | `getTempDir()` DefaultRequestAnalyzer가 사용하는 임시 폴더를 구한다.
`protected void` | `initing(ComponentConfig config)` DefaultRequestAnalyzer가 필요로 하는 정보를 초기 설정 정보로부터 구한다.
`void` | `setEncoding(java.lang.String encoding)` 업로드 데이터의 인코딩을 지정한다.
`void` | `setMax(long max)` 업로드 파일의 최대 크기를 지정한다.
`void` | `setTempDir(java.lang.String tempDir)` DefaultRequestAnalyzer가 사용하는 임시 폴더를 지정한다.

Methods inherited from class tle.framework.component.impl.ComponentBase
`close, closing, getDescription, getID, getState, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, resuming, start, starting, stop, stopping, suspend, suspending`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface tle.framework.component.Component
`close, getID, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, start, stop, suspend`

Methods inherited from interface tle.framework.component.ComponentMBean
`getDescription, getID, getState`

Constructor Detail

### DefaultRequestAnalyzer

    public DefaultRequestAnalyzer()

Method Detail

### initing

    protected void initing(ComponentConfig config)
                    throws ComponentException

  DefaultRequestAnalyzer가 필요로 하는 정보를 초기 설정 정보로부터 구한다.

  Overrides:
    `initing` in class `ComponentBase`
  Parameters:
    `config` - 컴포넌트 초기화 설정 정보를 담고 있는 객체
  Throws:
    `ComponentException`
  See Also:
    `ComponentBase.initing(tle.framework.component.ComponentConfig)`

### analyzeRequest

    public RequestInfo analyzeRequest(HttpServletRequest request,
                                      HttpServletResponse response)
                               throws RequestAnalyzerException

  Jakarta Commons FileUpload API의 FileUpload.isMultipartContent(request)를 실행하여 인코딩 타입이 multipart/form-data 이면 FileUpload API를 통해서 RequestInfo 인스턴스를 생성한다.

  콘텍스트 부분의 경로를 제외한 나머지 부분을 명령어 ID로 사용한다.

  Specified by:
    `analyzeRequest` in interface `RequestAnalyzer`
  Parameters:
    `request` - HTTP 요청
  Returns:
    RequestInfo
  Throws:
    `RequestAnalyzerException` - 요청 분석에 문제가 있을 경우에 발생한다.
  See Also:
    `tle.framework.component.spi.ra.RequestAnalyzer#analyzeRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)`

### getTempDir

    public java.lang.String getTempDir()

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  DefaultRequestAnalyzer가 사용하는 임시 폴더를 구한다.

  Specified by:
    `getTempDir` in interface `DefaultRequestAnalyzerMBean`
  Returns:

### setTempDir

    public void setTempDir(java.lang.String tempDir)

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  DefaultRequestAnalyzer가 사용하는 임시 폴더를 지정한다.

  Specified by:
    `setTempDir` in interface `DefaultRequestAnalyzerMBean`
  Parameters:
    `tempDir` - 임시 폴더의 경로

### getMax

    public long getMax()

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  업로드 파일의 최대 크기를 구한다.

  Specified by:
    `getMax` in interface `DefaultRequestAnalyzerMBean`
  Returns:

### setMax

    public void setMax(long max)

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  업로드 파일의 최대 크기를 지정한다.

  Specified by:
    `setMax` in interface `DefaultRequestAnalyzerMBean`
  Parameters:
    `max` -

### getEncoding

    public java.lang.String getEncoding()

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  업로드 데이터의 인코딩을 구한다.

  Specified by:
    `getEncoding` in interface `DefaultRequestAnalyzerMBean`
  Returns:

### setEncoding

    public void setEncoding(java.lang.String encoding)

  Description copied from interface: `DefaultRequestAnalyzerMBean`
  업로드 데이터의 인코딩을 지정한다.

  Specified by:
    `setEncoding` in interface `DefaultRequestAnalyzerMBean`
  Parameters:
    `encoding` -

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD