3月25日

(一)监听器的概述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下虚拟主机和虚拟目录下的工程都会序列化SessionTomcat/conf/Catalina/localhost/context.xml:只有localhost虚拟主机下的所有项目会序列化Session

你可能感兴趣的:(3月25日)