Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cách định nghĩa nhiều filter trong JSP

Web application có thể định nghĩa nhiều filter với mục đích riêng. Ví dụ định nghĩa 2 filter AuthenFilter và LogFilter. Cấu hình mapping trong web.xml:

<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>

Thứ tự áp dụng Filter

Thứ tự phần tử filter-mapping trong web.xml quyết định thứ tự container áp dụng filter cho servlet/JSP. Để đảo thứ tự, chỉ cần đảo thứ tự filter-mapping trong web.xml.

Ví dụ trên áp dụng LogFilter trước, rồi AuthenFilter. Đảo thứ tự:

<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>