Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

JSP에서 여러 필터를 어떻게 정의합니까?

<시간/>

웹 애플리케이션은 특정 목적을 가진 여러 필터를 정의할 수 있습니다. 두 개의 필터 AuthenFilter를 정의한다고 생각해 보세요. 및 LogFilter . 아래에 언급된 것처럼 다른 매핑을 생성해야 하는 경우를 제외하고 나머지 프로세스는 위에서 설명한 대로 유지됩니다. -

<filter>
   <filter-name>LogFilter</filter-name>
   <filter-class>LogFilter</filter-class>
   <init-param>
      <param-name>test-param</param-name>
      <param-value>Initialization Paramter</param-value>
   </init-param>
</filter>
<filter>
   <filter-name>AuthenFilter</filter-name>
   <filter-class>AuthenFilter</filter-class>
   <init-param>
      <param-name>test-param</param-name>
      <param-value>Initialization Paramter</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

신청 순서 필터링

web.xml에서 필터 매핑 요소의 순서는 웹 컨테이너가 필터를 서블릿 또는 JSP에 적용하는 순서를 결정합니다. 필터의 순서를 바꾸려면 web.xml에서 필터 매핑 요소를 반대로 하면 됩니다. 파일.

예를 들어 위의 예는 먼저 LogFilter를 적용한 다음 AuthenFilter를 서블릿이나 JSP에 적용합니다. 다음 예는 순서를 반대로 합니다 -

<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>