如:以下是一个项目中的web.xml配置文件,在项目中有一个Filter加做HelloFilter,一个Servlet叫做HelloServlet。在Filter的filter-mapping中增加了一个servlet-name标签,将该标签的值设置成Servlet的名字,在访问Servlet时就会调用该过滤器过滤请求。
<filter>
<filter-name>HelloFilter</filter-name>
<filter-class>com.atguigu.web.filter.HelloFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HelloFilter</filter-name>
<servlet-name>HelloServlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.atguigu.web.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
Filter的执行顺序
我们可以为一个资源配置多个Filter,当配置多个Filter以后就有一个执行顺序的问题,实际执行顺序是按照在web.xml文件中servlet-mapping的顺序决定的,如果顺序越靠前越先被调用。
例:Filter的HelloWorld步骤:
1.创建一个类实现Filter接口
2.在web.xml文件中对Filter进行配置
1 <filter> 2 3 <filter-name>Filter的别名</filter-name> 4 5 <filter-class>Filter的全类名</filter-class> 6 7 </filter> 8 9 <filter-mapping> 10 11 <filter-name>别名</filter-name> 12 13 <url-pattern>需要Filter拦截的资源地址</url-pattern> 14 15 </filter-mapping>