
第8章2Listener详解·Listener简介·Listener开发·Listener的API·Listener的应用
第8章_2 Listener详解 • Listener简介 • Listener开发 • Listener的API • Listener的应用

运城尊院Yuncheng UniversityListener简介8.1Listener开发8.2Listener的API8.3一点击查看本小节知识架构Listener的应用8.4
Listener简介 Listener开发 Listener的API Listener的应用 ☞点击查看本小节知识架构

学习目标理解Listener的理解Listener的概念工作原理理解理解掌握掌握Listener常掌握Listener的创用AP的使用建及配置
理解Listener的 概念 1 掌握Listener常 4 用API的使用 理解Listener的 2 工作原理 掌握 3 Listener的创 建及配置 学习目标

8.1Listener简介Listener又称监听器,用于对Web应用中特定的事件进行监听。当被监听的事件发生时,Listener将会触发对应的方法来实现一些特殊的功能一个Listener就是一个实现特定接口的iava类,它用于监听另一个Java类对象的方法调用或属性改变,当被监听的对象出现方法调用或属性改变后,Listener的某个方法将立即被执行。Listener的工作原理如图所示。享件对象(Evente)Listener对象(对装享件及劲作)(监听器)享件对家woidmethod Evente)(被些听的享件)调用监听器对象的共个方法要执行的染作注册监听器
8.1 Listener简介 • Listener又称监听器,用于对Web应用中特定的事件进行监听。当被监听的事件发生时,Listener将 会触发对应的方法来实现一些特殊的功能。 • 一个Listener就是一个实现特定接口的java类,它用于监听另一个Java类对象的方法调用或属性改变, 当被监听的对象出现方法调用或属性改变后,Listener的某个方法将立即被执行。Listener的工作原 理如图所示

8.1Listener简介·图中展示了Listener的工作原理,事件监听涉及三个组件,即事件源对象、事件对象、Listener对象:首先,事件源对象要和Listener对象绑定,:当事件源对象执行某一个动作时,它会调用Listener对象的一个方法,并在调用该方法时传入事件对象(即Event对象),事件对象中封装了事件源对象和与其动作的相关信息,Listener对象通过传入的事件对象可以获取事件源对象,从而对事件源对象进行操作
8.1 Listener简介 • 图中展示了Listener的工作原理,事件监听涉及三个组件,即事件源对象、事件对象、Listener对象。 • 首先,事件源对象要和Listener对象绑定, • 当事件源对象执行某一个动作时,它会调用Listener对象的一个方法,并在调用该方法时传入事 件对象(即Event对象),事件对象中封装了事件源对象和与其动作的相关信息,Listener对象 通过传入的事件对象可以获取事件源对象,从而对事件源对象进行操作

8.1Listener简介·为了简化开发,降低程序的业务复杂程度,Java语言封装了Web开发中事件触发和调用Listener的过程,并提供了多种Listener接口用于实现对不同事件的监听。在实际开发中,开发人员无须关注事件如何触发以及怎么调用对应的Listener,只需记住常用Listener接口的功能并能根据这些接口编写相应的Listener实现类即可。编写完成以后,当事件触发Listener时,服务器会自动调用Listener实现类中的方法完成指定操作。。JavaEE中定义了一系列的Listener接口,其中常用的有八种,这八种Listener接口主要用于监听ServletContext、HttpSession和ServletRequest三个类的对象。按照具体功能,这八种Listener接口又可分为以下三类
8.1 Listener简介 • 为了简化开发,降低程序的业务复杂程度,Java语言封装了Web开发中事件触发和调用Listener的 过程,并提供了多种Listener接口用于实现对不同事件的监听。在实际开发中,开发人员无须关注事 件如何触发以及怎么调用对应的Listener,只需记住常用Listener接口的功能并能根据这些接口编写 相应的Listener实现类即可。编写完成以后,当事件触发Listener时,服务器会自动调用Listener实 现类中的方法完成指定操作。 • JavaEE中定义了一系列的Listener接口,其中常用的有八种,这八种Listener接口主要用于监听 ServletContext、HttpSession和ServletRequest三个类的对象。按照具体功能,这八种Listener接 口又可分为以下三类

8.1Listener简介1.与ServletContext相关的Listener接口ServletContextListener接、ServletContextAttributeListener接。2.与会话相关的Listener接口·HttpSessionListener接、HttpSessionAttributeListener接、HttpSessionBindingListener接、HttpSessionActivationListener接。3.与请求相关的Listener接口:ServletRequestListener接、ServletRequestAttributeListener接。:以上接口分别用于实现各种不同的功能,关于这些Listener接口,后文会有详细的介绍,这里不再展开讲解
8.1 Listener简介 1. 与ServletContext相关的Listener接口 • ServletContextListener接口、ServletContextAttributeListener接口。 2.与会话相关的Listener接口 • HttpSessionListener接口、HttpSessionAttributeListener接口、HttpSessionBindingListener接 口、HttpSessionActivationListener接口。 3.与请求相关的Listener接口 • ServletRequestListener接口、ServletRequestAttributeListener接口。 • 以上接口分别用于实现各种不同的功能,关于这些Listener接口,后文会有详细的介绍,这里不再展 开讲解

8.2Listener开发:编写一个Listener程序主要分两步:首先要创建一个Listener类,使其实现对应的接口;其次是将创建好的Listener类配置到Web应用中。接下来,通过一个实例来演示如何编写一个Listener程序:(1)打开Eclipse,新建Web工程chap08,右击工程名,在弹出的菜单中选择NEW一Listener选项,进入创建Listener的界面。:(2)在创建Listener的界面中,Javapackage文本框用于指定Listener所在的包名,这里输入chap08.listener,Classname文本框用于指定Listener的类名,这里输入TestListenerO1,Superclass用于指定Listener的父类,这里暂不填写。单击Next按钮,进入下一个界面,这个界面用于选择当前编写的Listener类要实现的接口
8.2 Listener开发 • 编写一个Listener程序主要分两步:首先要创建一个Listener类,使其实现对应的接口;其次是将创 建好的Listener类配置到Web应用中。接下来,通过一个实例来演示如何编写一个Listener程序。 • (1)打开Eclipse,新建Web工程chap08,右击工程名,在弹出的菜单中选择NEW→Listener选项, 进入创建Listener的界面。 • (2)在创建Listener的界面中,Java package文本框用于指定Listener所在的包名,这里输入 chap08.listener,Class name文本框用于指定Listener的类名,这里输入TestListener01, Superclass用于指定Listener的父类,这里暂不填写。单击Next按钮,进入下一个界面,这个界面 用于选择当前编写的Listener类要实现的接口

8.2Listener开发(3)上图所示界面显示了实际开发中常用的八种Listener接口,本次选择Servletcontextevents选项区域下的Lifecycle选项,这将意味着,当前编写的Listener类可用于监听ServletContext对象的创建及销毁,完成选择后,单击Next按钮进入下一个界面。。(4)选择当前编写的Listener类要实现的其他类型的接口,这里采用默认的javax.servlet.ServletContextListener。单击Finish按钮,完成Listener的创建。这时,Eclipse会弹出TestListenero1类创建完成后的界面
8.2 Listener开发 • (3)上图所示界面显示了实际开发中常用的八种Listener接口,本次选择Servlet context events 选项区域下的Lifecycle选项,这将意味着,当前编写的Listener类可用于监听ServletContext对象的 创建及销毁,完成选择后,单击Next按钮进入下一个界面。 • (4)选择当前编写的Listener类要实现的其他类型的接口,这里采用默认的 javax.servlet.ServletContextListener。单击Finish按钮,完成Listener的创建。这时,Eclipse会弹 出TestListener01类创建完成后的界面

8.2Listener开发(5)打开web.xml文件,发现web.xml中增加了如下代码。com.gfedu.listener.TestListenerol在这些配置信息中,元素用于声明一个Listener,元素是元素的子元素,用于设置Listener类的完整名称。这里需要注意的是,一个web.xml文件中可以配置多个Listener,触发的时候服务器会按照配置顺序依次调用。1packagechapes.listener;:而Servlet3.0及以上版本则是自动添加了注解,如下所-importjavax.servlet.ServletContextEvent;WebistenerestListenerelimplementsServletContextListenerpublle3publicvoidcontextDestroyed(ServletContextEventsce)f11// ToDoAuto-generated method stub127public void contextInitialized(ServletContextEvent sce)(5571/ ToDo Auto-generatedmethod stub1180
8.2 Listener开发 • (5)打开web.xml文件,发现web.xml中增加了如下代码。 • 在这些配置信息中,元素用于声明一个Listener,元素是 元素的子元素,用于设置Listener类的完整名称。这里需要注意的是,一个web.xml文件中可以配置 多个Listener,触发的时候服务器会按照配置顺序依次调用。 • 而Servlet3.0及以上版本则是自动添加了注解,如下所示: com.qfedu.listener.TestListener01