zoukankan      html  css  js  c++  java
  • 过滤器的概念与使用


    过滤器:
     过滤器是向web应用程序的请求和响应添加功能的组件。它
          可以在原始的数据与目标之间进行过滤。

    过滤器的工作原理,包括下面几步:
     1.用户访问Web资源的时候,发送的请求会先经过过滤器。
     2.由Web容器对请求数据进行过滤处理。
     3.经过过滤的请求数据被发送至目标资源进行处理。
     4.目标资源处理后的响应被发送到过滤器。
     5.经过过滤器的过滤后,将响应返回客户端。

    过滤器的应用场合:
     对请求和响应进行统一处理。
     对请求进行日志记录和审核。
     对数据进行屏蔽和替换。
     对数据进行加密和解密。

    过滤器的生命周期:
     1.实例化。---访问Web资源前,Web容器负责创建过滤器的实列来完成过滤器的实例化得工作,实例化只做一次。
     2.初始化。---在进行过滤前会调用init()方法来实现初始化操作。
     3.执行过滤。调用doFilter()方法实现过滤器的特定功能。在doFilter()有效期内,doFilter()方法可以反复的调用。
     4.销毁。由Web容器调用destory()方法,通过调用destory()方法实现将过滤器所占资源释放。

    过滤器的使用步骤:
     1.创建实现Filter接口的类。
     2.在doFilter()中编写实现过滤器的方法。
     3.调用下一个过滤器或者Web资源。
     4.在web.xml文件中配置过滤器。

     示列:
     public class CharacterEncodingFilter implements Filter {

      //进行字符编码的设置
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       //设置请求时的编码方式
       request.setCharacterEncoding("UTF-8");
       //设置响应时的编码方式
       response.setCharacterEncoding("UTF-8");
       //调用Web资源,也可以调用其它过滤器,必须编写这段代码。
       chain.doFilter(request, response);
      }

     }


     <filter>
          <display-name>CharacterEncodingFilter</display-name>
          <filter-name>CharacterEncodingFilter</filter-name>
          <filter-class>com.pb.news.web.filter.CharacterEncodingFilter</filter-class>
       </filter>
       <filter-mapping>
          <filter-name>CharacterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
       </filter-mapping>

      <url-pattern>元素表示:过滤器映射的Web资源。
      配置方式:
       精确匹配:<url-pattern>/xxx</url-pattern>
       目录匹配:<url-pattern>/admin/*</url-pattern>
       扩展名匹配:<url-pattern>*.do</url-pattern>
       全部匹配:<url-pattern>/*</url-pattern>
      匹配的顺序就是:先精确匹配,目录匹配,扩展名匹配,最后全部匹配。

  • 相关阅读:
    自动化测试成功11333
    自动化测试成功11222
    自动化测试成功1111
    自动化测试成功112
    自动化测试成功18
    自动化测试成功1
    自动化测试成功
    富文本测试
    关于VMware虚拟机磁盘收缩的几种方法
    8个让你更有效率的简单方法
  • 原文地址:https://www.cnblogs.com/fifiyong/p/5944625.html
Copyright © 2011-2022 走看看