文章目录
Listener(监听器)
第1章 Listener简介
-
Listener用于监听JavaWeb程序中的事件。
-
例如:ServletContext、HttpSession、ServletRequest的创建、修改和删除。
-
Listener和我们之前学习的JS中的事件处理机制类似。在JS中,当我们触发某个事件后(例如:点击一个按钮)程序会调用一个响应函数来处理事件。同样的,在JavaWeb中,我们可以为某些事件来设置监听器,当事件被触发时,监听器中的指定方法将会被调用。
第2章 观察者模式
-
Listener的原理是基于观察者模式的,所谓观察者模式简单来说,就是当被观察者的特定事件被触发(一般这某些方法被调用)后,会通知观察者(调用观察者的方法),观察者可以在自己的方法中来对事件做一些处理。
-
在我们的JavaWeb中,观察者就是Listener,而被观察者可能有三个ServletContext、HttpSession、ServletRequest。而事件指的就是这些对象的创建、修改和删除等。
第3章 Listener的分类
3.1 监听对象的创建与销毁
-
ServletContextListener
-
作用:监听ServletContext对象的创建与销毁
-
方法:
public void contextInitialized ( ServletContextEvent sce ):ServletContext创建时调用
public void contextDestroyed ( ServletContextEvent sce ):ServletContext销毁时调用
-
ServletContextEvent对象
- 作用:public ServletContext getServletContext ():获取ServletContext对象
-
-
HttpSessionListener
-
作用:监听HttpSession对象的创建与销毁
-
方法:
- public void sessionCreated ( HttpSessionEvent se ):HttpSession对象创建时调用
- public void sessionDestroyed ( HttpSessionEvent se ):HttpSession对象销毁时调用
-
HttpSessionEvent对象
- 作用:public HttpSession getSession ():获取当前HttpSession对象
-
-
ServletRequestListener
-
作用:监听ServletRequest对象的创建与销毁
-
方法:
- public void requestInitialized ( ServletRequestEvent sre ):ServletRequest对象创建时调用
- public void requestDestroyed ( ServletRequestEvent sre ):ServletRequest对象销毁时调用
-
ServletRequestEvent对象
-
作用:
public ServletRequest getServletRequest ():获取当前的ServletRequest对象。
public ServletContext getServletContext ():获取当前项目的ServletContext对象。
-
-
3.1.1 创建与销毁监听器的使用
-
三种创建与销毁的监听器使用起来基本一致。
-
下边来编写一个ServletContext的监听器:
-
步骤一:创建一个类实现ServletContextListener
public class MyServletContextListener implements ServletContextListener {
-