filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。
• Filter何时创建:服务器启动时就创建该filter对象; • Filter何时销毁:服务器关闭时filter销毁。
• ServletRequest/ServletResponse:每次在执行doFilter方法时web容器负责创建一个request和一个response对象作为doFilter的参数传递进来。该request和response就是在访问目标资源的service方法时的request和response。(要当成request/response用就强转成HttpServlet*类型)
• FilterChain:过滤器链对象,通过该对象的doFilter方法可以放行该请求。
web.xml文件中的<filter-mapping>标签顺序
FilterChain: 过滤器链, 由filter-mapping将过滤器连接串起来的 doFilter() -> 执行下一个过滤器, 递归原理,执行结束后会逆序运行doFilter下面的代码。
• REQUEST:默认值,代表直接访问某个资源时执行filter • FORWARD:转发时才执行filter • INCLUDE: 包含资源时执行filter • ERROR:发生错误时 进行跳转是执行filter