如何在 JSP 中定义多个过滤器?
您的 web 应用程序可通过特定目的定义多个不同的过滤器。考虑一下,您定义两个过滤器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 中 filter-mapping 元素的顺序确定了 web 容器将过滤器应用于 servlet 或 JSP 的顺序。为颠倒过滤器的顺序,您只需要颠倒 web.xml 文件中的 filter-mapping 元素。
例如,上述示例会先应用 LogFilter 然后它会将 AuthenFilter 应用到任何 servlet 或 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>
广告