十分钟快速入手Filter过滤器基础知识

本文介绍了JavaWeb的Filter过滤器,包括其概念、作用、执行原理和生命周期。讲解了如何编写过滤器、配置过滤路径,以及过滤器的执行顺序。重点阐述了`doFilter()`方法在请求和响应拦截中的角色,同时提到了Filter与Servlet的关系,以及在实际应用中的场景,如权限检查和日志操作等。
摘要由CSDN通过智能技术生成

目录

Filter 过滤器介绍

Filter是什么,有什么用,执行原理是什么?

Filter过滤器功能实现

一个过滤器怎么写呢?

目标Servlet是否执行,取决于两个条件: 

chain.doFilter(request, response); 这行代码的作用:

关于Filter的配置路径:

在web.xml文件中进行配置的时候,Filter的执行顺序是什么?

使用@WebFilter的时候,Filter的执行顺序是怎样的呢?

Filter的生命周期?(创建、服务、销毁)

Filter过滤器这里有一个设计模式:

责任链设计模式最大的核心思想:


Filter 过滤器介绍

  • Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是Servlet 程序、Listener 监听器、Filter 过滤器。
  • Filter 过滤器它是 JavaEE 的规范,也就是一个接口。
  • Filter 过滤器它的作用是拦截请求和过滤响应。拦截请求常见的应用场景有权限检查、日记操作、事务管理等等。例如:登录验证,统一编码处理,敏感字符过滤~~
  • Filter是什么,有什么用,执行原理是什么?

    • 在图 1 中,当浏览器访问 Web 服务器中的资源时,需要经过两个过滤器 Filter1 和 Filter2。首先 Filter1 会对这个请求进行拦截,在 Filter1 中处理完请求后,通过调用 Filter1 的 doFilter() 方法将请求传递给 Filter2,Filter2 处理用户请求后同样调用 doFilter() 方法,最终将请求发送给目标资源。当 Web 服务器对这个请求做出响应时,也会被过滤器拦截,但这个拦截顺序与之前相反,最终将响应结果发送给客户端浏览器。

    •  Filter是过滤器。

    • Filter可以在Servlet这个目标程序执行之前添加代码。也可以在目标Servlet执行之后添加代码。之前之后都可以添加过滤规则。

    • 一般情况下,都是在过滤器当中编写公共代码。

    Filter过滤器功能实现

  • 1在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据。

    2在HttpServletResponse到达客户端之前,拦截HttpServletResponse 。根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

    3 Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,doFilter方法中有一个filterChain对象,用于继续传递给下一个filter,在传递之前我们可以定义过滤请求的功能,在传递之后,我们可以定义过滤响应的功能

  • 一个过滤器怎么写呢?

    • 第一步:编写一个Java类实现一个接口:jarkata.servlet.Filter。并且实现这个接口当中所有的方法。

      • init方法:在Filter对象第一次被创建之后调用,并且只调用一次。

      • doFilter方法:只要用户发送一次请求,则执行一次。发送N次请求,则执行N次。在这个方法中编写过滤规则。

      • destroy方法:在Filter对象被释放/销毁之前调用,并且只调用一次。

    •  

      //是在请求的时候添加过滤规则
      System.print.out("doFilter方法开始执行")
      //是在响应的时候添加过滤规则
      System.print.out("doFilter方法执行结束")

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值