当需要限制用户访问某些资源或者在处理请求时提前处理某些资源时,即可使用过滤器完成。
** 过滤器**,是一个服务器端的组件,它可以截取用户端的请求域响应信息,杏彩体育并对这些信息过滤。
过滤器是以一种组件的形式绑定到Web应用程序当中的,与其他的Web用用程序组件不同的是,杏彩体育过滤器是采用“链”的方式进行处理。
在没有使用过滤器以前,客户端都是直接请求Web资源的杏彩体育,但是一旦加入了过滤器,所有的请求都是先交给了过滤器处理,然后再访问相应的Web资源,可以达到对某些资源的访问限制。
定义一个过滤器,直接让一个类实现javax.servlet.Filter接口即可。并覆写相应的方法,所有的过滤器要执行两次。
这是过滤器的初始化方法,Web容器创建过滤器实例化后将调用这个方法,这个方法中可以读取web.xml文件中过滤器的参数净化器。杏彩体育
这个方法完成实际的过滤操作,这个是过滤器的核心方法,当用户请求访问与过滤器关联的URL时,Web容器将先调用过滤器的doFilter()方法。
FilterChain参数可以调用chain.doFilter()方法,将请求传给下一个过滤器(或目标资源),或利用转发、重定向将请求转发到其他资源。
Web容器在销毁过滤器销毁实例前调用该方法,在这个方法中可以释放过滤器占用的资源。(大多数情况用不到)
@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。