서블릿 필터링

서블릿 필터링은 요청을 변환하거나 응답을 수정할 수 있는 필터라는 새 유형의 오브젝트를 제공합니다.

필터 그룹이 지정된 자원이나 자원의 그룹의 입력과 출력에서 동작할 수 있도록 필터를 함께 체인할 수 있습니다.

필터는 기본적으로 로깅 필터, 이미지 변환 필터, 암호화 필터 및 MIME(Multipurpose Internet Mail Extensions) 유형 필터(기능상 서블릿 체인과 동등한)를 포함합니다. 필터가 서블릿이 아니더라도 라이프사이클은 매우 유사합니다.

필터는 다음 방법으로 처리됩니다.

  1. 웹 컨테이너는 요청된 자원에 대해 LoggingFilter를 포함하는 FilterChain을 구성해야 할지 여부를 판별합니다.

    FilterChainLoggingFilter의 호출로 시작되며 요청된 자원의 호출로 끝납니다.

  2. 기타 필터를 체인으로 이동해야 하는 경우, 웹 컨테이너는 theLoggingFilter 뒤와 요청된 자원 앞에 배치됩니다.
  3. 웹 컨테이너가 LoggingFilter를 인스턴스화하고 초기화하며(이전에 수행하지 않았던 경우) doFilter(FilterConfig) 메소드를 호출하여 체인을 시작합니다.
  4. LoggingFilter는 요청과 응답 오브젝트를 사전 처리한 다음 필터 체인 doFilter(ServletRequest, ServletResponse) 메소드를 호출합니다.

    이 메소드는 체인에서 다음 자원인 요청된 자원으로 처리를 전달합니다.

  5. 필터 체인 doFilter(ServletRequest, ServletResponse) 메소드에서의 리턴에 따라, LoggingFilter는 응답을 다시 클라이언트로 보내기 전에 요청과 응답 오브젝트에서 사후 처리를 수행합니다.

Java™ Servlet Specification 2.4를 사용하여 RequestDispatcher로 필터를 호출하지 않고 REQUEST, FORWARD, INCLUDE, ERROR와 같은 가능한 값으로 배치 디스크립터에서 새 <dispatcher> 요소를 정의할 수 있습니다.

Java Servlet Specification 3.0을 사용하여 RequestDispatcher로 필터를 호출하지 않고 ASYNC, REQUEST, FORWARD, INCLUDE, ERROR와 같은 가능한 값으로 배치 디스크립터에서 새 <dispatcher> 요소를 정의할 수 있습니다.

예를 들어 다음과 같습니다.
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

필터가 전달 요청뿐 아니라 클라이언트에서 바로 요청에 적용되어야 함을 표시합니다. 또한 INCLUDE 및 ERROR 값 추가는 필터가 포함된 요청과 <error-page> 요청에 추가로 적용되어야 함을 표시합니다. <dispatcher> 요소를 지정하지 않으면 기본값은 REQUEST입니다.

서블릿 필터링을 위한 Filter, FilterChain, FilterConfig 클래스

다음 인터페이스는 javax.servlet 패키지의 일부로 정의됩니다.

  • 필터 인터페이스 - 메소드: doFilter, getFilterConfig, setFilterConfig
  • FilterChain 인터페이스 - 메소드: doFilter
  • FilterConfig 인터페이스 - 메소드: getFilterName, getInitParameter, getInitParameterNames, getServletContext

다음 클래스는 javax.servlet.http 패키지의 일부로 정의됩니다.

  • HttpServletRequestWrapper - 메소드: Servlet 2.4 스펙 참조
  • HttpServletResponseWrapper - 메소드: Servlet 2.4 스펙 참조

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_sfilt
파일 이름:cweb_sfilt.html