Filter过滤器
什么是Filter
在开发中,通过浏览器访问服务器端的目标资源时,过滤器实现拦截功能。如果过滤器判断是合理的请求,就方形,允许访问目标资源。
Filter在web应用中拦截的过程如下:
Filter过滤器就是一个实现了javax.servlet.Filter接口的类,在接口中定义了三个方法:
init方法:在过滤器对象被创建后,执行初始化方法
doFilter方法:在这个方法里面实现拦截和放行
destroy方法:在过滤器销毁后,执行
Filter映射
使用通配符“”拦截所有的用户请求:配置有三种形式:
完全目录匹配:比如/MyServlet
目录匹配:比如/,/aa/代表拦截aa目录下的所有请求
扩展名匹配:比如.do,.action,错误写法:/.do
拦截不同方式的访问请求:
REQUEST:当用户直接访问页面时,web容器将会调用过滤器
INCLUDE:如果目标资源时通过RequestDispatcher的include()方法访问的,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
FORWARD:如果目标资源时通过RequestDispatcher的forward()方法访问的,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
ERROR:如果目标资源时通过声明式异常处理机制调用的,那么该过滤器将被调用
Filter链
在web项目中可以注册多个Filter程序,多个Filter程序对同一url请求进行拦截,那么这么多个Filter程序就成为Filter链
FilterConfig接口
功能