zoukankan      html  css  js  c++  java
  • FILTER(过滤器)

    Filter(过滤器),在Servlet文档中是这样描述的: 

      ‘A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. 

    Filters perform filtering in the doFilter method. Every Filter has access to a FilterConfig object from which it can obtain its initialization parameters, a reference to the ServletContext which it can use, for example, to load resources needed for filtering tasks.

    Filters are configured in the deployment descriptor of a web application’

    • 过滤器是对资源请求(servlet或静态内容)或资源响应(或两者)执行过滤任务的对象。
    • 过滤器在doFilter方法中执行过滤。每个Filter都可以访问FilterConfig对象,从该对象可以获取其初始化参数,例如,可以使用ServletContext的引用,以加载过滤任务所需的资源。
    • 过滤器在Web应用程序的部署描述符中配置。

    作用:

      他的作用就是过滤作用,对客户端发送的请求进行过滤,也可以对服务器返回的响应进行处理。使用户改变一个request和修改一个response。Filter 不是一个servlet,它不能产生一个response,但是它能够在一个request到达servlet之前预处理request,也可以在 response离开servlet时处理response。换句话说,filter其实是客户端与servlet中间的一个传递者,并且它可以对要传递 的东西进行修改。 

    场合:

      用于实现URL级别的权限访问限制,以及过滤敏感词汇,压缩响应信息等。

    实现方式:

      当客户端发生请求后,在HttpServletRequest到达Servlet之前,过滤器拦截客户的        HttpServletRequest。

      

    根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。

      在过滤器中调用doFilter方法,对请求放行。请求到达Servlet后,对请求进行处理并产生HttpServletResponse发送给客户端。

      在HttpServletResponse 到达客户端之前,过滤器拦截HttpServletResponse 。

      根据需要检查HttpServletResponse ,可以修改HttpServletResponse 头和数据。

      最后,HttpServletResponse到达客户端。

    生命周期 :

      

    (1)Filter接口中有三个重要的方法。

    • init()方法:初始化参数,在创建Filter时自动调用。当我们需要设置初始化参数的时候,可以写到该方法中。
    • doFilter()方法:拦截到要执行的请求时,doFilter就会执行。这里面写我们对请求和响应的预处理。
    • destroy()方法:在销毁Filter时自动调用。 

      (2)Filter的生命周期

       Filter的创建和销毁由web服务器控制。

    • 服务器启动的时候,web服务器创建Filter的实例对象,并调用其init方法,完成对象的初始化功能。filter对象只会创建一次,init方法也只会执行一次。
    • 拦截到请求时,执行doFilter方法。可以执行多次。
    • 服务器关闭时,web服务器销毁Filter的实例对象
  • 相关阅读:
    Spring mvc配置
    css选择器
    网页全屏背景设计
    2018年的第一篇
    总结2016,规划2017
    Jenkins上Git ssh登陆配置
    Jenkins构建项目,JAVA_HOME is not defined correctly
    运行Jmeter.bat出错:Not able to find java executor or version. Please check your installation. errorlevel=2
    Selenium获取input值的两种方法:WebElement.getAttribute("value")和WebElement.getText()
    Jmeter
  • 原文地址:https://www.cnblogs.com/czl1205115684/p/10708803.html
Copyright © 2011-2022 走看看