简单来讲,监听器是监听一个对象发生的什么事,而后监听器作出相应的反应。这就是咱们的监听器,用咱们专业的话来讲:监听器负责监听事件源的事件。java
事件源:发生事件的源头,监听器须要监听的对象。web
事件:事件源上发生的动做,监听器监听的内容。服务器
监听器:负责监听事件源的对象。session
在咱们的javaweb中,监听器主要负责监听这三个对象:request,session,ServletContext,接下来就是根据监听这三个对象所承担的责任不一样而对监听器进行的一个分类。app
a.监听request、ServletContext 、session对象的建立和销毁ide
ServletRequestListener、ServletContextListener、HttpSessionListener本次工程的目标是学习监听器,掌握监听三个对象的建立和销毁方法。学习
三个对象:rquest,session,ServletContext.net
实现的接口:ServletRequestListener,HttpSessionListener,ServletContextListenercode
工程的大体步骤:对象
1.自定义实现三个监听器的类
2.使用注解的方法注册监听器
3.部署工程并运行,在控制台会输出相应的信息
import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import javax.servlet.annotation.WebListener; /* * 2018.5.15 * @author Dragon * 监听request对象的建立和销毁的监听器 */ @WebListener public class MyServletRequestListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent arg0) { System.out.println("MyServletRequestListener--------requestDestroyed"); } @Override public void requestInitialized(ServletRequestEvent arg0) { System.out.println("MyServletRequestListener--------requestInitialized"); } }
import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /* * 2018.5.15 * @author Dragon * 监听session对象的建立和销毁的监听器 */ @WebListener public class MyHttpSessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent arg0) { System.out.println("MyHttpSessionListener--------sessionCreated"); } @Override public void sessionDestroyed(HttpSessionEvent arg0) { System.out.println("MyHttpSessionListener--------sessionDestroyed"); } }
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; /* * 2018.5.15 * @author Dragon * 监听application对象的建立和销毁的监听器 */ @WebListener public class MyServletContextListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { System.out.println("MyServletContextListener--------contextDestroyed"); } @Override public void contextInitialized(ServletContextEvent arg0) { System.out.println("MyServletContextListener--------contextInitialized"); } }
以上三个自定义的类都实现了相应的接口,而后在对应的方法中向控制台打印相应的信息。除此以外,上面的监听器中采用注解的方式进行了注册!
@WebListener因此监听器的建立和注册的任务都完成了,接下来就是部署工程跑一跑偶看咱们的运行结果进行分析。
ok!很完美的走了一次监听器是如何监听咱们这三个对象的建立和销毁的过程。接下来继续向前学习~
下一阶段:监听request、session、ServletContext 对象存放的数据变化状况