day15 监听器
(一)监听器的概述
1、什么是监听器监听器就是一个实现了特定接口的Java类,这个Java类用于监听另一个Java类的方法调用,或者属性的改变。当被监听对象发生上述事件后,监听器某个方法将会立即被执行
2、监听器的用途用来监听其他对象的变化的,主要应用在图形化界面的开发上例如Java中的GUI、Android等,都有大量的监听器的使
3、监听器的术语事件源:指的是被监听对象(汽车)监听器:指的是监听的对象(报警器)事件源和监听器绑定:在汽车上安装报警器事件:指的是事件源对象的改变(踹了汽车一脚),主要功能是获得事件源对
(二)监听器的入门
1、监听器的入门程序
2、监听器的执行过程
(三)Servlet中的监听器
一、Servlet中的监听器简介在Servlet中定义了多种类型的监听器,它们用于监听的事件源分别是ServletContext、HttpSession和ServletRequest这三个域对象
二、Servlet中的监听器的分类
1、一类:监听三个域对象的创建和销毁的监听器(三个)
2、二类:监听三个域对象的属性变更(属性添加、移除、替换)的监听器(三个)
3、三类:监听HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)的监听(两个)
(四)ServletContextListener监听器的使用
一、ServletContextListener监听器的作用用来监听ServletContext域对象的创建和销毁的监听器
二、ServletContext创建和销毁
1、创建:在服务器启动的时候,为每个Web应用创建单独的ServletContext对象
2、销毁:在服务器关闭的时候,或者项目从Web服务器中移除的时候
三、ServletContextListener监听器的方法
1、监听ServletContext对象的创建contextInitialized(ServletContextEvent sce)
2、监听ServletContext对象的销毁ontextDestroyed(ServletContextEvent sce)
四、编写监听器
1、监听器的代码
2、监听器的配置
五、ServletContextListener的企业用途
1、加载框架的配置文件Spring框架提供了一个核心监听器叫ContextLoaderListener
2、定时任务调度
(五)HttpSessionListener监听器的使用
一、HttpSessionListener监听器作用用来监听HttpSession对象的创建和销毁
二、HttpSession创建和销毁创建:服务器端第一次调用getSession()方法的时候销毁:非正常关闭服务器(正常关闭服务器Session会被序列化)Session过期(默认过期时间30分钟)手动调用session.invalidate()方法
三、HttpSessionListener
监听器的方法
1、监听HttpSession对象创建sessionCreated(HttpSessionEvent se)
2、监听HttpSession对象销毁sessionDestroyed(HttpSessionEvent se)
四、编写监听器监听HttpSession对象创建和销毁
1、监听器的代码
2,监听器的配置
3、问题:访问HTML是否会创建Session?访问JSP是否会创建Session?访问Servlet是否会创建Session?
(六)ServletRequestListener监听器的使用
一、ServletRequestListener监听器的作用用于监听ServletRequest对象的创建和销毁
二、ServletRequest对象的创建和销毁创建:从客户端向服务器发送一次请求,服务器就会创建Request对象销毁:服务器对这次请求作出了响应之后,Request对象就销毁了
三、ServletRequestListener监听器的方法
1、监听ServletRequest对象的创建requestInitialized(ServletRequestEvent sre)
2、监听ServletRequest对象的销毁requestDestroyed(ServletRequestEvent sre)
四、编写监听器代码
1、监听器代码
2、监听器配置
3、问题:访问HTML页面是否创建请求对象?会访问JSP页面是否创建请求对象?会访问Servlet是否创建请求对象?会
(七)统计当前在线人数的案例
一、案例分析在服务器启动的时候需要有一个初始值为零。当浏览器访问服务器上的某个JSP了,就会创建Session,此时获取初始值,进行+1操作。如果Session销毁了,获取该值进行-1操作
二、代码实现
1、创建ServletContextListen