过滤器的概念与使用

 


过滤器:
 过滤器是向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>
  匹配的顺序就是:先精确匹配,目录匹配,扩展名匹配,最后全部匹配。

 

转载于:https://www.cnblogs.com/fifiyong/p/5944625.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值