1 监听器的定义
是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监听对象发生变化时,采取相应行动
2 web中监听器的定义
![](https://img.haomeiwen.com/i16291279/14350700e134a3ff.png)
3 web监听器的常用用途
![](https://img.haomeiwen.com/i16291279/e9c3f5bdc7fbff39.png)
4 创建第一个监听器
常规的web项目,需要将监听器注册在web.xml中方可使用
5 监听器的启动顺序
![](https://img.haomeiwen.com/i16291279/c129f1eff665ae90.png)
6 监听器的分类
6.1 按监听对象划分
![](https://img.haomeiwen.com/i16291279/a24546bfdd061a77.png)
6.1.1 ServletContext
6.1.2 HttpSession
6.1.3 ServletRequest
6.2 按监听的事件划分
![](https://img.haomeiwen.com/i16291279/caab6ecc3a093bda.png)
6.2.1 监听域对象自身的创建和销毁的事件监听器
![](https://img.haomeiwen.com/i16291279/af5234568d98610f.png)
6.2.1.1 ServletContext
![](https://img.haomeiwen.com/i16291279/de7cc53f6e4b91b0.png)
![](https://img.haomeiwen.com/i16291279/66368f4c77bbc363.png)
![](https://img.haomeiwen.com/i16291279/9e88effcbdafaf52.png)
还可以给容器设置一些全局范围的值
![](https://img.haomeiwen.com/i16291279/b12b5e6be453d22b.png)
6.2.1.2 HttpSession
![](https://img.haomeiwen.com/i16291279/c9bdec833fe489fa.png)
session的销毁时机:
1 关闭服务器时
2 关闭浏览器一段时间后(时间暂不可量化)
3 长时间不操作session超时(session超时时间可配置)
![](https://img.haomeiwen.com/i16291279/589dcb5b11b0043a.png)
6.2.1.3 ServletRequest
![](https://img.haomeiwen.com/i16291279/17031b671fc22663.png)
![](https://img.haomeiwen.com/i16291279/5794898c8ced4806.png)
6.2.2 监听域对象中的属性的增加和删除的事件监听器
![](https://img.haomeiwen.com/i16291279/94feb000d217d07e.png)
![](https://img.haomeiwen.com/i16291279/e855b9c0a1e1f3e2.png)
小知识:request.getAttribute("1");可以获取的对象值必须由request.setAttribute("1","2");设置得来,
request.getParameter("s")的值是由http请求发送过来,如http://www.baidu.con/username=dyue
简略示例:
![](https://img.haomeiwen.com/i16291279/868c084dad816574.png)
6.2.3 监听绑定到HttpSession域中的某个对象的状态的事件监听器
![](https://img.haomeiwen.com/i16291279/3a72eae02dd3bc89.png)
绑定是指将对象存储在session中
钝化是指将对象持久化到文件或者数据库中
6.2.3.1 session钝化机制
![](https://img.haomeiwen.com/i16291279/7834ae9e63b974c3.png)
6.2.3.2 session两种钝化管理器
![](https://img.haomeiwen.com/i16291279/57144931b8845c13.png)
![](https://img.haomeiwen.com/i16291279/06d06657c5f9cf08.png)
第二种钝化管理器需要在tomcat的conf文件夹下修改context.xml文件,在<Mnager pathname="">标签中配置要用的钝化驱动类
![](https://img.haomeiwen.com/i16291279/45625cbac080c3fa.png)
6.2.3.2 Servlet规范提供的监听接口
![](https://img.haomeiwen.com/i16291279/df916b27ed83996e.png)
6.3 Servlet3.0下的监听器的使用
6.3.1 使用Servlet3.0的前提条件
![](https://img.haomeiwen.com/i16291279/0fbf7f3f2de3744f.png)
6.3.1 Servlet3.0下监听器的用法
![](https://img.haomeiwen.com/i16291279/13be430390fc8663.png)
6.3.1.1 WebListener的常用属性
![](https://img.haomeiwen.com/i16291279/923921535d3a3dab.png)
网友评论