过滤器Filter

过滤器也是一种servlet   它也可以对用户的请求进行处理  , 但是他所做的处理,只是一些轻量级的处理。Fileter就好像jsp页面与servlet之间的一道关卡,如果这个web应用有Filter那么,jsp页面的请求在到达要去的servlet之前,先被Filter解惑,在Filter做一些处理之后,然后再让该请求去它原本要去的servlet。同理,Filter也可以对servlet生成的响应,进行拦截处理,让后再让它去它原本要去的jsp页面。

一个Filter类,要实现javax.servlet.Filter接口,这个接口提供如下三个方法:

init(FilterConfig  config)    ------对生成的Filter对象进行初始化    传入的config对象  可以可以调用方法来获取该Filter在web.xml中的配置参数

destory()                            ------在销毁Filter对象之前,自动调用该方法对资源进行回收

doFilter(ServletRequest  request , ServletResponse  response, Filterchain  chain)

------  在该方法内对拦截到达请求或响应   进行一些处理   然后交给它 目的servlet或jsp页面

传入的request对象   表示 拦截到的request对象

传入的response对象   表示拦截到的response对象

传入的chain对象     可以通过调用chain.doFilter(request,response)   表示过滤器已经处理完了,将请求或者响应转发到它们想去的servlet

或者jsp页面

Filter实例对象的生命周期

牢记Filter也是一种提供轻量级服务的servlet,它提供服务同servlet一样,是通过实例对象调用处理方法

web应用加载→ 创建Filter类的实例对象 → 自动调用init()方法对该实例对象进行初始化  →   调用doFilter()方法对请求或响应进行处理  .........合适的时间  自动调用derstory()方法()进行资源回收  →  该Filter类的实例对象被销毁

Filter类的配置

监听器Listener

通过过滤器 和servlet  可以看出它们两者都是对请求或者响应提供服务的。一个web应用被启动之后 ,内部不仅仅是请求和响应在活动,还有session对象开始,结束,web应用开始,结束,等等很多事件,

而监听器就像一双耳朵,应用中发生了某些事件,而这些事件发生之后,我就要做一些处理 。

监听器也提供了好几个接口,用来监听不同的事件:

ServletContextListener接口      -------监听web应用的启动和关闭

ServletContextAttributeListener接口    -------监听application对象(ServletContext类的实例对象)内的值得变化

ServletRequestListener接口                --------监听request对象(ServletRequest类的实例对象)

ServletRequestAttributeListener接口      -----监听request对象(ServletRequest类的实例对象)内值的变化

HttpSessionListener接口                      ------监听session对象(HttpSession类的实例对象)的开始和结束

HttpSessionAttribute接口                      -----监听session对象(HttpSession类的实例对象)中值的变化

每个接口中都定义了若干方法   ,用于在某个事件被监听到之后自动调用,也是通过Listener实例对象调用方法实现的 。Listener实例对象和Filter实例对象,都是在web应用被加载时创建的,这点不同与servlet,因为servlet实例对象的创建根据配置不同,有两个时间点去创建。

Listener的配置

相对于Filter与Servlet来说,Listener的配置最简单 。

转载于:https://www.cnblogs.com/wangliyue/p/4113032.html

过滤器Filter与监听器Listener相关推荐

  1. SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener

    SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener 1.定义组件的配置类: com.example.mybatis2018.config.MyServletCo ...

  2. 过滤器filter,监听器listener

    目录 1. filter过滤器 1.1 原理 1.2 配置 1.3 过滤掉脏话demo 2. listener监听器 2.1 作用 2.2 ServletContextListener demo 1. ...

  3. Servlet过滤器Filter和监听器

    一.Servlet过滤器的概念: *********************************************************************************** ...

  4. 8-过滤器Filter和监听器Listener

    一.web监听器:监听特殊事件的发生 1.监听实现步骤 a.写一个java类,实现特定的接口,重写相关方法 b.在web.xml中,牌配置 <listener> <listener- ...

  5. JavaWeb中监听器Listener+过滤器filter+拦截器interceptor区别

    JavaWeb中监听器Listener+过滤器filter+拦截器interceptor区别 如果从整个项目中看,一个servlet请求的执行过程就变成了这样context-param–>lis ...

  6. SpringBoot 之多个过滤器(Filter) ,监听器(Listener),切面(AOP),拦截器(Interceptor)的指定排序问题总结篇

    相关文章: SpringBoot 之AOP切面的使用 SpringBoot之Listener注册到Spring容器中的多种方法 SpringBoot之Interceptor拦截器注入使用 Spring ...

  7. 监听器Listener

    监听器Listener Servlet监听器是监听事件发生,在事件发生前后能够做出相应处理的web应用组件. PS:与传统监听直接将监听事件注册在事件源上不同,Servlet的监听器是统一配置在web ...

  8. 监听器-Listener

    监听器-Listener Listener监听器 ServletContextListener ServletContextAttributeListener HttpSessionListener ...

  9. Spring Boot 系列:过滤器+拦截器+监听器

    原 Swagger 文章合并到 Spring Boot 系列:配置 Swagger2 一.过滤器 - Filter 过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请 ...

  10. Java过滤器Filter使用详解

    <div id="post_detail"> 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6374212.html 在我的项目 ...

最新文章

  1. 计算机操作系统:处理机的调度
  2. Linux 主机被入侵后的处理案例
  3. python 编码文件json.loads json.dumps
  4. R语言:na.fail和na.omit
  5. 【python】利用python的tkinter-canvas函数绘制哆啦A梦过程详解(附源码)
  6. 使用枚举映射_用EnumMaps映射枚举键
  7. 深度学习主机攒机小记
  8. 爬虫:Python爬虫学习笔记之爬虫基础
  9. 十分钟教你使用NoteExpress
  10. 数据结构与算法中的经典算法
  11. chrome 安装 gliffy插件以及使用
  12. My IDEA Keymap
  13. 给 21 岁的自己 6 点建议
  14. 用JavaScript时钟特效
  15. bilibili弹幕爬取
  16. python实现决策树 西瓜书_朴素贝叶斯python代码实现(西瓜书)
  17. 阿里云:工厂车间是一个广阔的天地,在那里大有作为
  18. 蓝桥杯——种植园问题(prev54)
  19. 人生的,爱情,友情,亲情之间的关系!
  20. Spire.XLS:一款Excel处理神器

热门文章

  1. GIS案例练习-----------第四天
  2. 直观讲解Matlab的im2col函数
  3. 【移动GIS】室内导航算法设计
  4. 遥感影像植被颜色增强
  5. linux系统自行清理归档日志_Linux下自动删除归档日志文件的方法
  6. HTTP异步链接池发送HTTP外部请求,获取本地ip导致HTTP外部请求很慢怎么解决?
  7. fast虚拟服务器ip地址设置,falogin.cn fast怎样正确设置电脑的IP地址和DNS等参数? - falogincn登录页面...
  8. Android头部悬浮ListView第二种实现方式
  9. Glide4.0源码全解析(二),load()背后的故事
  10. 获取分辨率函数是什么_信号的时间域分辨率和频率域分辨率