0
点赞
收藏
分享

微信扫一扫

过滤器&监听器

爪哇驿站 2022-03-26 阅读 64
java

监听器(listener)

  • 监听器简介 :

    • 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
    • 主要是用来监听特定对象的创建或销毁、属性的变化的!是一个实现特定接口的普通java类!
    • 对象:自己创建自己用 (不用监听), 别人创建自己用 (需要监听)
  • 监听器的监听对象

    • 在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为ServletContext, HttpSessionServletRequest 这三个域对象
    • Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型
      1. 监听三个域对象创建和销毁的事件监听器
      2. 监听域对象中属性的增加和删除的事件监听器
      3. 监听绑定到 HttpSession 域中的某个对象的状态的事件监听器 (查看API文档)

过滤器

  • 过滤器简介 :

    • Filter也称为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

    • Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截

    • Filter是如何实现拦截的?

      • Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,因此,在该方法内编写代码可达到如下目的:
        • 调用目标资源前,让一段代码先执行
        • 是否调用目标资源(即是否让用户访问web资源)
          • web服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是filter接口中最重要的一个对象,它也提供了一个doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方法,即web资源就会被访问,否则web资源不会被访问。
        • 调用目标资源之后,让一段代码执行
    • 为什么需用到过滤器 : 项目开发中,经常会涉及到重复代码的实现!

    • 过滤器,设计执行流程:(OOAD : 面向对象的分析与设计 - 时序图)

      1. 用户访问服务器
      2. 过滤器: 对Servlet请求进行拦截
      3. 先进入过滤器, 过滤器处理
      4. 过滤器处理完后, 在放行, 此时,请求到达Servlet/JSP
      5. Servlet处理
      6. Servlet处理完后,再回到过滤器, 最后在由tomcat服务器相应用户;
    • 开发步骤 :

      • 写一个普通java类,实现Filter接口
      • 配置过滤器
  • 过滤器相关Api


 

举报

相关推荐

0 条评论