1、什么是监听器 监听器就是一个实现了特定接口的Java类,这个Java类用于监听另一个Java类的方法调用,或者属性的改变。当被监听对象发生上述事件后,监听器某个方法将会立即被执行2、监听器的用途 用来监听其他对象的变化的,主要应用在图形化界面的开发上 例如Java中的GUI、Android等,都有大量的监听器的使用3、监听器的术语 事件源:指的是被监听对象(汽车) 监听器:指的是监听的对象(报警器) 事件源和监听器绑定:在汽车上安装报警器 事件:指的是事件源对象的改变(踹了汽车一脚),主要功能是获得事件源对象(二)监听器的入门1、监听器的入门程序 (三)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对象的销毁 contextDestroyed(ServletContextEvent sce)四、编写监听器1、监听器的代码2、监听器的配置五、ServletContextListener的企业用途1、加载框架的配置文件 Spring框架提供了一个核心监听器叫ContextLoaderListener2、定时任务调度(五)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是否创建请求对象?会(七)统计当前在线人数的案例 此时获取初始值,进行+1操作。 如果Session销毁了,获取该值进行-1操作二、代码实现1、创建ServletContextListener进行初始化2、创建HttpSessionListener3、配置监听器4、创建JSP页面(八)监听三个域对象的属性变更的监听器一、三类监听器1、ServletContextAttributeListener监听ServletContext对象中的属性变更(属性添加、移除、替换)的监听器attributeAdded(ServletContextAttributeEvent event)attributeRemoved(ServletContextAttributeEvent event)attributeReplaced(ServletContextAttributeEvent event)2、HttpSessionAttributeListener监听HttpSession对象中的属性变更(属性添加、移除、替换)的监听器attributeAdded(HttpSessionBindingEvent event)attributeRemoved(HttpSessionBindingEvent event)attributeReplaced(HttpSessionBindingEvent event)3、ServletRequestAttributeListener 监听ServletRequest对象中的属性变更(属性添加、移除、替换)的监听器attributeAdded(ServletRequestAttributeEvent srae)attributeRemoved(ServletRequestAttributeEvent srae)attributeReplaced(ServletRequestAttributeEvent srae)二、演示第二类监听器1、演示HttpSessionAttributeListener2、配置监听器3、编写测试的JSP(九)监听HttpSession中Java类状态改变的监听器一、第三类监听器概述1、保存在Session域中的Java类可以有多种状态:绑定到Session中、从Session中解除绑定、随Session对象持久化到一个存储设备中(钝化)、随Session对象从一个存储设备中恢复(活化)2、Servlet规范中中定义了两个特殊的监听的接口,来帮助Java类了解自己在Session域中的状态,分别是: HttpSessionBindingListener接口 HttpSessionActivationListener接口 实现了这两个接口的类,是不需要在web.xml中进行配置的二、HttpSessionBindingListener监听器1、监听Java类在HttpSession中的绑定和解除绑定的状态的监听器 valueBound(HttpSessionBindingEvent event) valueUnbound(HttpSessionBindingEvent event)2、测试代码三、HttpSessionActivationListener监听器1、监听HttpSession中Java类的钝化和活化的监听器 sessionDidActivate(HttpSessionEvent se) sessionWillPassivate(HttpSessionEvent se)2、测试代码3、配置完成Session的序列化和反序列化 Context标签可以配置在: Tomcat/conf/context.xml:所有Tomcat下虚拟主机和虚拟目录下的工程都会序列化Session Tomcat/conf/Catalina/localhost/context.xml:只有localhost虚拟主机下的所有项目会序列化Session
作业
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...