Lisener监听器

1.Listener(监听器)

Listener是Servlet的监听器。
所谓的监听器是指对整个WEB环境的监听,当被监视的对象(ServletContext)发生情况(生命周期,setAttribute)时,立即调用相应的方法进行处理。
监听器监听客户端的请求和服务器的操作,通过实现Listener接口的类可以在监听到特定事件后激发一些操作。

2.监听器的分类:

(1)按监听的对象划分

  • 用于监听应用程序环境对象(ServletContext)的事件监听器。
  • 用于监听用户会话对象(HttpSession)的事件监听器。
  • 用于监听请求消息对象(ServletRequest)的事件监听器。
    (2)按监听的事件类项划分
  • 用于监听域对象自身的创建和销毁的事件监听器。
  • 用于监听域对象中的属性的增加和删除的事件监听器。
  • 用于监听绑定到HttpSession域中的某个对象的状态的事件监听器。**

Tomcat提供了三个对象的监听器

  1. ServletContextListener
  2. HttpSessionListener
  3. ServletRequestListener
    分别监听对象的创建和销毁,对象属性的变化,以及监听httpsession中对象的绑定和解绑定。随着web应用的启动而启动,销毁而销毁,只初始化一次。

3.Listener监听三个域对象创建与销毁

(1) ServletContext
利用ServletContextListener监听器在创建ServletContext域对象时完成一些想要初始化的工作或者执行自定义任务调度。
生命周期:
创建:在 Web 服务器启动并加载某个 Web 应用程序时创建相应的ServletContext 对象.
销毁:在 Web 服务器关闭或卸载时为每个 Web 应用程序销毁相应的ServletContext 对象.

		@WebListener
		public class MyServletContextListener implements ServletContextListener{
		
			@Override
			public void contextInitialized(ServletContextEvent arg0) {
				System.out.println("初始化");
			}
			@Override
			public void contextDestroyed(ServletContextEvent arg0) {
				System.out.println("已销毁");
			}
		
		}

(2) HttpSession
在每位用户登录网站时都会创建一个HTTPSession对象,可以利用这个统计在线人数。
生命周期:
创建:在浏览器开始与服务器会话时创建。
销毁:在调用HttpSession.invalidate();超过了Sessiond的最大有效时间间隔,服务器进程被停止的时候。

		@WebListener
		public class MyHttpSessionListener implements HttpSessionListener{
		
			@Override
			public void sessionCreated(HttpSessionEvent arg0) {
				System.out.println("HttpSession创建了");
			}
		
			@Override
			public void sessionDestroyed(HttpSessionEvent arg0) {
				System.out.println("HTTPSession销毁了");
			}
		
		}

(3) ServletRequest
生命周期:
创建:在每次请求开始时创建。
销毁:在每次访问结束后销毁。

		@WebListener
		public class MyServletRequestListener implements ServletRequestListener{
		
			@Override
			public void requestDestroyed(ServletRequestEvent arg0) {
				System.out.println("ServletRequest销毁了");
			}
		
			@Override
			public void requestInitialized(ServletRequestEvent arg0) {
				System.out.println("ServletRequest创建了");
			}
		
		}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值