javaWeb三大组件:
servlet
listener(用的不多)
filter

什么叫监听器:
初次相见:AWT
二次相见:SAX(XML解析时)
Bundle 绑定
监听器是一个接口,内容由我们实现
它需要注册,例如注册在按钮上
监听器的方法会在特定事件发生时调用

特性:
总是和观察者模式相关。
事件源:谁飙车
事件:有人飚车了
监听器:交警(就监听谁飙车,就注册在事件源身上),监听器的方法(这里就是抓捕)
当然可能不止一个。

JavaWeb中的监听器(八大监听器)
常见的事件源:ServletContext
生命周期监听:ServletContextListener
出生(生之后)[相对用的多一些,虽然整个监听器用的都少]
和死亡(死之前)时两个方法(人是从生之后开始干事)
属性监听: ServletContextAttributeListener 添加、替换、移除属性三个方法
HttpSession
生命周期监听
类同上,详细参见J2EE api
属性监听
ServletQequest
生命周期监听
类同上
属性监听

外加感知监听:添加到JavaBean中,与HttpSession相关,无需再web.xml中注册
让javaBean实现HttpSessionBindingListener接口,从此bean就知道是否被添加或者被移除了

session拥有死而复生的能力(存在本地硬盘)serializable
取消序列化 在context.xml中加<Manager pathname=""/>
实际里面打开注释就行,里面已经写好
session的序列化与反序列化(关闭与启动服务器)
应用场景:
1.一般来说,服务器启动后,就不会再关闭了,
但是如果逼不得已需要重启,而用户会话还在进行
相应的操作,这时就需要使用序列化将session信息
保存起来放在硬盘,服务器重启后,又重新加载。
这样就保证了用户信息不会丢失,实现永久化保存

简单说就是把对象转换为字节形式存储的过程称为对象的序列化
当然,这一切前提都是实现Serializable

2.淘宝每年都会有定时抢购的活动,很多用户会提前
登录等待,长时间不进行操作,一致保存在内存中,
而到达指定时刻,几十万用户并发访问,就可能会有
几十万个session,内存可能吃不消,这时就需要进行
对象的活化、钝化,让其在闲置的时候离开内存,
将信息保存至硬盘,等要用的时候,就重新加载进内存
钝化与活化(太多session了,把长时间不使用的倒出来)
persistent 持久稳固的
配置文件中加
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="true" maxActiveSessions="1">
<Store className="org.apache.catalina.session.FileStore" directory="d:/a">
</Store>
</Manager>
这里最后的监听器:
HttpSessionActivationListener
两个方法,分别钝化与活化时调用,JavaBean实现这个接口,他也知道何时被钝化与活化了

步骤:
写一个监听器类(实现指定的接口)
完成注册(只需在web.xml中配置)在myeclipse中直接创建Listener选择实现的接口,会自动在web.xml中注册

生命周期事件对象:ServletContextEvent (getServletContext()方法最为主要)
其它类同,主要职责 报告事件源
属性监听类同(用的不多)
主要方法event.getName()与getValue()的属性相关方法

JavaWeb基础—监听器Listener的更多相关文章

  1. Javaweb基础--->监听器listener(转发)

    JavaWeb中的监听器 1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 Servl ...

  2. 深入分析JavaWeb Item38 -- 监听器(Listener)高速学习

    一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其它对象身上发生的事件或状态改变进行监听和对应处理的对象,当被监视的对象发生情况时,马上採取对应的行动.监听器事实上就是一个实现特定接口的普 ...

  3. 深入分析JavaWeb Item39 -- 监听器(Listener)学习进阶

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...

  4. javaweb学习总结(四十七)——监听器(Listener)在开发中的应用

    监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...

  5. javaWeb学习总结(11)- 监听器(Listener)在开发中的应用

    监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...

  6. javaWeb学习总结(11)- 监听器(Listener)学习

    一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其 实就是一个实现特定接口的普 ...

  7. JavaWeb学习 (二十七)————监听器(Listener)在开发中的应用

    监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...

  8. JavaWeb学习笔记(二十一)—— 监听器Listener

    一.监听器概述 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域对 ...

  9. JavaWeb—监听器Listener

    1.简介 Listener是Servlet的监听器,Servlet 监听器用于监听一些重要事件的发生,监听器对象在事情发生前.发生后可以做一些必要的处理. JavaWeb里面的listener是通过观 ...

随机推荐

  1. 聊聊 getClientRects 和 getBoundingClientRect 方法

    开始表演 今天来聊一下两个相似的方法,它们就是:getBoundingClientRect().getClientRects(). 只见它们俩手拉手地登上了舞台,一个鞠躬,便开始滔滔不绝起来. 自述 ...

  2. Chrome 插件推荐

    我在这里就是抛砖引玉,各位开发者,有更好的插件请不要吝啬,分享出来. 希望世界和平! 翻译类 沙拉查词 目前使用,感觉挺好的,各种词典,还有统计.划词划句都可以翻译出来. JSON 格式转换 JSON ...

  3. [翻译] snapshotViewAfterScreenUpdates

    snapshotViewAfterScreenUpdates This method very efficiently captures the current rendered appearance ...

  4. Linux 环境部署记录(一) - 基础设定

    时间设置 查看系统当前日期/时间: date -R 查看系统硬件时钟: hwclock --show 设置硬件时间: hwclock --set --date="07/18/17 20:55 ...

  5. Hadoop HBase概念学习系列之HBase里的Client(二十二)

    这个,很简单,但凡是略懂大数据的,就很清楚,不多说,直接上图.

  6. Hadoop HBase概念学习系列之行、行键(十一)

    行是由列簇中的列组成.行根据行键依照字典顺序排序. HBase的行使用行键标识,可以使用行键查询整行的数据. 对同一个行键的访问都会落在同样的物理节点上.如果表包含2个列簇,属于两个列簇的文件还是保存 ...

  7. 面向对象程序设计_Task4_Calculator1.1

    The 2nd part of the Calculator program 题目链接:Click Here github链接:Click Here 诶嘿,第二部分,要开始实现计算的功能了,估计离不是 ...

  8. PHP设计模式系列 - 单例

    单例模式 通过提供自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次. 使用场景 例如数据库实例,一般都会走单例模式. 单例模式可以减少类的实例化 代码:来源InitPHP框架,先检测类有 ...

  9. 跟我一起阅读Java源代码之HashMap(一)

    最近闲的很,想和大家一起学习并讨论下Java的一些源代码以及其实现的数据结构, 不是什么高水平的东西,有兴趣的随便看看 1. 为什么要用Map,以HashMap为例 很多时候我们有这样的需求,我们需要 ...

  10. grep命令.md

    grep命令 简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Prin ...