Filter(过滤器):可以对 请求(响应) 进行过滤 使用filter技术,对web服务器管理的web资源进行拦截 实现一些特殊功能的,例如对敏感消息,对url进行过滤等
Filter进行过滤的流程:
Filter的创建和使用:
1:实现一个 javax.servlet.Filter 接口
2: 添加注解,标明要进行过滤的请求路径 @WebFilter( urlPattterns = " 目标径 ")
3: 实现 Filter 接口中的三个抽象方法 init( 初始化 ) , doFilter( 执行过滤功能 ) , destory( 销毁 )
doFilter:(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain){
FilterChain : servlet 容器为开发人员提供的对象,它提供了对某一资源的已过滤请求调用链的视图 过滤器使用 FilterChain 调用链中的下一个过滤器,如果调用的过滤器是链中的最后一个过滤器 则调用链末尾的资源
***** 注意:
在Filter的 doFilter() 方法内如果没有执行, 那么资源是不会被访问到的 多个Filter对同一个资源进行了拦截, 访问下一下Filter,直到最后一个Filter执行时, 它后面没有了Filter,才会访问web资源
doFilter()的访问顺序:
多个过滤器都匹配目标,执行顺序和过滤器类名有关, 按类名的 字母顺序 排序
想要指定访问时,可以在 web.xml 里配置