过滤器
    概述
      从技术上讲,过滤器是一个中间组件,用于拦截源数据和目的数据之间的消息,并且过滤二者之间传递的数据。其作用类似于警卫,阻止不想的信息从一个点传递到另一个点
      对于Web应用程序,过滤器是驻留在Web服务器上的Web组件,它可以过滤从客户端传递到服务器的请求和响应,当Web容器接收到一个对资源的请求,它将判断是否有过滤器与这个资源相关联。如果有,就交给过滤器,过滤器可以更改请求的内容,或者重设置请求头,然后再将请求传递给目标资源。同样它也可以对服务器发出的响应进行修改。
      从上面的过程可以看出客户端和目标资源来说都是透明的,他们不需要知道过滤器的存在
      在这个过程当中还可以设置多个过滤器,形成一条链,来进行相应的处理
    应用:
      1.认证过滤:对用户请求进行统一的认证
      2.登录和审核过滤:对用户的访问请求进行记录和审核。
      3.图像转换过滤:转换图像格式
      4.数据压缩过滤:对用户发生的数据进行压缩,从而减少传输量
      5.加密过滤:对请求和响应进行加密解密处理
      6.令牌过滤
      7.资源访问触发事件过滤
      8.XSLT过滤
      9.MIME-type过滤
      代码:
        过滤器必须实现Filter这个接口
          有三个方法需要实现
            1.init()-初始化
            2.doFilter()-过滤
            3.destroy()-销毁
        注意:javax.servlet包中包括
          ServletRequest、ServletResponse、ServletExcption、FilterConfig、Filter、FilterChain
        javax.io包中包括:
          PrinterWriter、IOExcption
        Filter的布署
          它的布署跟servlet的 布署差不多eg:
            <filter>       <filter-name>Hello</filter-name>                 <filter-class>com.lovo.HelleWorld</filter-class>          </filter>  <filter-mapping>            <filter-name>Hello</filter-name>                    <url-pattern>/filter/*</url-pattern> </filter-mapping>
    过滤器API:
      容器实现的三个接口:
        1.javax.servlet.Filter
        2.javax.serlvet.Filter.Chain
        3.javax.servlet.FilterConfig-跟servlet中的servletConfig一样,主要是提供过滤器初始化参数
      容器实现的四个包装类:
        1.javax.servlet.ServletRequestWrapper
        2.javax.servlet.Servletresponsewrapper
        3.javax.servlet.HttpServletRequestWrapper
        4.javax.servlet.HttpServletResponseWrapper

web过滤器可以防止WVS扫描和注入、跨站等攻击。