栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Lisener监听器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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创建了");
			}
		
		}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891074.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号