Filter篇

1、      Filter简介

Filter是Servlet的增强版,主要用于对用户请求进行预处理,也可以对HpptServletResponse进行后处理,是典型的处理链。过滤器的定义是一个服务器端的组件,他可以截取用户端的请求与响应信息,并对这些信息过滤。

完整的流程是Filter对用户请求进行预处理,接着讲请求交给Servlet进行处理并生成响应,最后Filter最对服务器响应进行后处理。Filter可负责拦截多个请求或是响应,一个请求或是响应也可被多个Filter拦截。

 

2、Filter是如何实现拦截的?

  Filter接口中有一个doFilter方法,当我们编写好Filter,并配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,因此,在该方法内编写代码可达到如下目的:

调用目标资源之前,让一段代码执行。

是否调用目标资源(即是否让用户访问web资源)。

调用目标资源之后,让一段代码执行。

web服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是filter接口中最重要的一个对 象,它也提供了一个doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方 法,即web资源就会被访问,否则web资源不会被访问。

3、过滤器和拦截器的区别:

拦截器用的是反射机制,过滤器是函数回调。

posted @ 2016-12-27 09:25  静醉丶那份默念  阅读(74)  评论(0)    收藏  举报