Filter

作者: 聪明的小一休 | 来源:发表于2019-06-29 10:51 被阅读0次

    过滤器(Filter)也称之为拦截器,是Servlet 2.3 规范新增的功能,在Servlet 2.4 规范中得到增强。
    Filter是Servlet技术中非常实用的技术,Web开发人员通过Filter技术,可以在用户访问某个Web资源之前,对访问的请求和响应进行拦截,从而实现一些特殊功能。

    过滤器的运行原理:
    预处理:当用户的请求到达指定的网页之前,可以借助过滤器来改变这些请求的内容
    后处理:当执行结果要响应到用户之前,可经过过滤器修改响应输出的内容

    运行过程分为以下几个步骤:
    1.Web容器判断接收的请求资源是否有与之匹配的过滤器,如果有,容器将请求交给相应过滤器进行处理。
    2.在过滤器预处理过程中,可以改变请求的内容,或者重新设置请求的报头信息,然后将请求发给目标资源。
    3.目标资源对请求进行处理后作出响应。
    4.容器将响应转发回过滤器。
    5.在过滤器后处理过程中,可以根据需求对响应的内容进行修改。
    6.Web容器将响应发送回客户端。

    过滤器链
    在一个Web应用中,也可以部署多个过滤器,这些过滤器组成了一个过滤器链。
    过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求可以在这些过滤器之间进行传递,直到达到目标资源。
    例如,一个由两个Filter所组成的过滤器链的过滤过程:



    在客户端的请求响应过程中,并不需要经过所有的过滤器链,而是根据过滤器链中每个过滤器的过滤条件来匹配需要的过滤资源。

    与开发Servlet需要实现Servlet接口类似,开发Filter要实现javax.servlet.Filter接口,并提供一个公共的不带参数的构造方法。

    生命周期分为四个阶段:
    加载和实例化
    初始化
    doFilter()方法的执行
    销毁

    应用情况:
    1.做统一的认证处理
    2.对用户的请求进行检查和更精确的记录
    3.监视或对用户所传递的参数做前置处理,例如:防止数据注入攻击
    4.改变图像文件的格式
    5.对请求和响应进行编码
    6.对响应做压缩处理
    7.对XML的输出使用XSLT来转换

    相关文章

      网友评论

          本文标题:Filter

          本文链接:https://www.haomeiwen.com/subject/scbucctx.html