java监听器

Skiplist,B,B+tree,LSM tree SkipList 理解(如何实现): 即使是有序的链表,查找的时间复杂度也是O(n),但链表不能随机访问所以不适用于二分查找,使得查找的时间复杂度为O(logn)。 于是将有序链表和二分查找结合得到了SkipList,类似于二叉搜索树,这是一种以空间换时间的算法,通过在每个节点中增加向前的指针,从而提升查找效率(如下图所示)。 一开始如a所示,是一个有序的链表,时间复杂度O(n)。随后建立了e所示的SkipList,从最顶层往下查找,可以跳过许多元素,减少查找次数。 ​ 阅读详情

 

首先感谢老紫竹群中dgqbcht的帮助,教会了我监听器的配置

切入正题,先说一下什么是监听器,监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可

以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent   se)方法,这样

就可以给在线人数加1。常用的监听接口有以下几个:

ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。  

ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent   sce)方法;当销

毁ServletContext时,激发contextDestroyed(ServletContextEvent   sce)方法。  

HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session   Created(HttpSessionEvent   se)方法;当销毁一个

Session时,激发sessionDestroyed   (HttpSessionEvent   se)方法。  

HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded

(HttpSessionBindingEvent   se)   方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent   se)方法;当

在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent   se)   方法。 

下面帖上一个简单的配置

Xml代码 复制代码  收藏代码
  1. <listener>  
  2.       <listener-class>listener.MySessionListener</listener-class>  
  3.   </listener>  
Xml代码   收藏代码
  1. <listener>  
  2.       <listener-class>listener.MySessionListener</listener-class>  
  3.   </listener>  

 把它放到<web-app>里

再建一个监听类

Java代码 复制代码  收藏代码
  1. package listener;   
  2.   
  3. import javax.servlet.http.HttpSessionEvent;   
  4. import javax.servlet.http.HttpSessionListener;   
  5.   
  6. public class MySessionListener implements HttpSessionListener {   
  7.  public void sessionCreated(HttpSessionEvent se) {   
  8.   // 当session建立时触发   
  9.   System.out.println("当session建立时触发");   
  10.  }   
  11.   
  12.  public void sessionDestroyed(HttpSessionEvent se) {   
  13.   // 当session销毁时触发   
  14.   System.out.println("当session销毁时触发");   
  15.  }  
Java代码   收藏代码
  1. package listener;  
  2.   
  3. import javax.servlet.http.HttpSessionEvent;  
  4. import javax.servlet.http.HttpSessionListener;  
  5.   
  6. public class MySessionListener implements HttpSessionListener {  
  7.  public void sessionCreated(HttpSessionEvent se) {  
  8.   // 当session建立时触发  
  9.   System.out.println("当session建立时触发");  
  10.  }  
  11.   
  12.  public void sessionDestroyed(HttpSessionEvent se) {  
  13.   // 当session销毁时触发  
  14.   System.out.println("当session销毁时触发");  
  15.  }  

 }

这样就配置成功了,打开页面时就会输出当session建立时触发,退出时输出当session销毁时触发!

下面我们开发一个具体的例子,这个监听器能够统计在线的人数。在ServletContext初始化和销毁时,在服务器控制台打印对应的信息。当ServletContext里的属性增加、改变、删除时,在服务器控制台打印对应的信息。 
          要获得以上的功能,监听器必须实现以下3个接口:  
             
  HttpSessionListener  
             
  ServletContextListener  
             
  ServletContextAttributeListener    
   
          我们看具体的代码,见示例14-9。    
   
          【程序源代码】     
   

Java代码 复制代码  收藏代码
  1.  //   ====================   Program   Discription   =====================      
  2.  //   程序名称:示例14-9   :   EncodingFilter   .java      
  3.  //   程序目的:学习使用监听器      
  4. //   ==============================================================      
  5.  import   javax.servlet.http.*;      
  6.  import   javax.servlet.*;      
  7.       
  8.  public   class   OnLineCountListener   implements   HttpSessionListener,      
  9. ServletContextListener,ServletContextAttributeListener      
  10.  {      
  11.  private   int   count;      
  12.  private   ServletContext   context   =   null;      
  13.       
  14.  public   OnLineCountListener()      
  15.  {      
  16.  count=0;      
  17.  //setContext();      
  18.  }      
  19.  //创建一个session时激发      
  20. public   void   sessionCreated(HttpSessionEvent   se)        
  21.  {      
  22.  count++;      
  23.  setContext(se);      
  24.       
  25.  }      
  26.  //当一个session失效时激发      
  27. public   void   sessionDestroyed(HttpSessionEvent   se)        
  28.  {      
  29.  count--;      
  30.  setContext(se);      
  31.  }      
  32.  //设置context的属性,它将激发attributeReplaced或attributeAdded方法      
  33. public   void   setContext(HttpSessionEvent   se)      
  34.  {      
  35.  se.getSession().getServletContext().      
  36. etAttribute("onLine",new   Integer(count));      
  37.  }      
  38.    //增加一个新的属性时激发      
  39. public   void   attributeAdded(ServletContextAttributeEvent   event)   {      
  40.       
  41.  log("attributeAdded('"   +   event.getName()   +   "',   '"   +      
  42.          event.getValue()   +   "')");      
  43.       
  44.          }      
  45.               
  46.        //删除一个新的属性时激发      
  47.         public   void   attributeRemoved(ServletContextAttributeEvent   event)   {      
  48.       
  49.  log("attributeRemoved('"   +   event.getName()   +   "',   '"   +      
  50.          event.getValue()   +   "')");      
  51.       
  52.          }      
  53.       
  54.  //属性被替代时激发      
  55.         public   void   attributeReplaced(ServletContextAttributeEvent   event)   {      
  56.       
  57.  log("attributeReplaced('"   +   event.getName()   +   "',   '"   +      
  58.          event.getValue()   +   "')");      
  59.          }      
  60.          //context删除时激发      
  61.           public   void   contextDestroyed(ServletContextEvent   event)   {      
  62.       
  63.  log("contextDestroyed()");      
  64.  this.context   =   null;      
  65.       
  66.          }      
  67.       
  68.          //context初始化时激发      
  69.         public   void   contextInitialized(ServletContextEvent   event)   {      
  70.       
  71.  this.context   =   event.getServletContext();      
  72.  log("contextInitialized()");      
  73.       
  74.          }      
  75.          private   void   log(String   message)   {      
  76.       
  77.          System.out.println("ContextListener:   "   +   message);      
  78.          }            
  79.  }     
Java代码   收藏代码
  1.  //   ====================   Program   Discription   =====================     
  2.  //   程序名称:示例14-9   :   EncodingFilter   .java     
  3.  //   程序目的:学习使用监听器     
  4. //   ==============================================================     
  5.  import   javax.servlet.http.*;     
  6.  import   javax.servlet.*;     
  7.      
  8.  public   class   OnLineCountListener   implements   HttpSessionListener,     
  9. ServletContextListener,ServletContextAttributeListener     
  10.  {     
  11.  private   int   count;     
  12.  private   ServletContext   context   =   null;     
  13.      
  14.  public   OnLineCountListener()     
  15.  {     
  16.  count=0;     
  17.  //setContext();     
  18.  }     
  19.  //创建一个session时激发     
  20. public   void   sessionCreated(HttpSessionEvent   se)       
  21.  {     
  22.  count++;     
  23.  setContext(se);     
  24.      
  25.  }     
  26.  //当一个session失效时激发     
  27. public   void   sessionDestroyed(HttpSessionEvent   se)       
  28.  {     
  29.  count--;     
  30.  setContext(se);     
  31.  }     
  32.  //设置context的属性,它将激发attributeReplaced或attributeAdded方法     
  33. public   void   setContext(HttpSessionEvent   se)     
  34.  {     
  35.  se.getSession().getServletContext().     
  36. etAttribute("onLine",new   Integer(count));     
  37.  }     
  38.    //增加一个新的属性时激发     
  39. public   void   attributeAdded(ServletContextAttributeEvent   event)   {     
  40.      
  41.  log("attributeAdded('"   +   event.getName()   +   "',   '"   +     
  42.          event.getValue()   +   "')");     
  43.      
  44.          }     
  45.              
  46.        //删除一个新的属性时激发     
  47.         public   void   attributeRemoved(ServletContextAttributeEvent   event)   {     
  48.      
  49.  log("attributeRemoved('"   +   event.getName()   +   "',   '"   +     
  50.          event.getValue()   +   "')");     
  51.      
  52.          }     
  53.      
  54.  //属性被替代时激发     
  55.         public   void   attributeReplaced(ServletContextAttributeEvent   event)   {     
  56.      
  57.  log("attributeReplaced('"   +   event.getName()   +   "',   '"   +     
  58.          event.getValue()   +   "')");     
  59.          }     
  60.          //context删除时激发     
  61.           public   void   contextDestroyed(ServletContextEvent   event)   {     
  62.      
  63.  log("contextDestroyed()");     
  64.  this.context   =   null;     
  65.      
  66.          }     
  67.      
  68.          //context初始化时激发     
  69.         public   void   contextInitialized(ServletContextEvent   event)   {     
  70.      
  71.  this.context   =   event.getServletContext();     
  72.  log("contextInitialized()");     
  73.      
  74.          }     
  75.          private   void   log(String   message)   {     
  76.      
  77.          System.out.println("ContextListener:   "   +   message);     
  78.          }           
  79.  }     

     
          【程序注解】  
          在OnLineCountListener里,用count代表当前在线的人数,OnLineCountListener将在Web服务器启动时自动执行。当

OnLineCountListener构造好后,把count设置为0。每增加一个Session,OnLineCountListener会自动调用sessionCreated(HttpSessionEvent 

 se)方法;每销毁一个Session,OnLineCountListener会自动调用sessionDestroyed(HttpSessionEvent   se)方法。当调用sessionCreated

(HttpSessionEvent   se)方法时,说明又有一个客户在请求,此时使在线的人数(count)加1,并且把count写到ServletContext中。

ServletContext的信息是所有客户端共享的,这样,每个客户端都可以读取到当前在线的人数。    
   
  为了使监听器生效,需要在web.xml里进行配置,如下所示:     
    
 

Xml代码 复制代码  收藏代码
  1. <listener>      
  2.                   <listener-class>OnLineCountListener</listener-class>      
  3.           </listener>     
Xml代码   收藏代码
  1. <listener>     
  2.                   <listener-class>OnLineCountListener</listener-class>     
  3.           </listener>     

     
  测试程序:     
    
 

Html代码 复制代码  收藏代码
  1. <%@   page   contentType="text/html;charset=gb2312"   %>      
  2.        
  3.   目前在线人数:        
  4.        
  5.   <font   color=red><%=getServletContext().getAttribute("onLine")%></font><br>      
  6.        
  7.   退出会话:        
  8.        
  9.   <form   action="exit.jsp"   method=post>      
  10.   <input   type=submit   value="exit">      
  11.   </form>      
  12.        
  13.   getServletContext().getAttribute("onLine")获得了count的具体值。客户端调用        
  14.        
  15.   <%session.invalidate()   ;%>     
Html代码   收藏代码
  1. <%@   page   contentType="text/html;charset=gb2312"   %>     
  2.       
  3.   目前在线人数:       
  4.       
  5.   <font   color=red><%=getServletContext().getAttribute("onLine")%></font><br>     
  6.       
  7.   退出会话:       
  8.       
  9.   <form   action="exit.jsp"   method=post>     
  10.   <input   type=submit   value="exit">     
  11.   </form>     
  12.       
  13.   getServletContext().getAttribute("onLine")获得了count的具体值。客户端调用       
  14.       
  15.   <%session.invalidate()   ;%>     

 
    
          使Session失效,这样监听器就会使count减1。    
   
          【运行程序】  
          web.xml做好以上的配置,把OnLineCountListener放在WEB-INF/class目录下,启动Web服务器,在浏览器里输入以下URL(根据具体

情况不同):http://127.0.0.1:8080/ch14/listener.jsp    
   
          浏览器将会打印目前在线人数。在服务器端有以下输出:     
    
 

Java代码 复制代码  收藏代码
  1. …      
  2.   ContextListener:   contextInitialized()      
  3.   ContextListener:   attributeReplaced('org.apache.      
  4.   catalina.WELCOME_FILES',   '[Ljava.lang.String;@1d98a')      
  5.   …      
  6.   ContextListener:   attributeAdded('onLine',   '1')      
  7.   ContextListener:   attributeReplaced('onLine',   '1')      
  8.   ContextListener:   attributeReplaced('onLine',   '0')      
  9.   ContextListener:   attributeReplaced('onLine',   '1')      
  10.   ContextListener:   attributeReplaced('onLine',   '2')  
Java代码   收藏代码
  1. …     
  2.   ContextListener:   contextInitialized()     
  3.   ContextListener:   attributeReplaced('org.apache.     
  4.   catalina.WELCOME_FILES',   '[Ljava.lang.String;@1d98a')     
  5.   …     
  6.   ContextListener:   attributeAdded('onLine',   '1')     
  7.   ContextListener:   attributeReplaced('onLine',   '1')     
  8.   ContextListener:   attributeReplaced('onLine',   '0')     
  9.   ContextListener:   attributeReplaced('onLine',   '1')     
  10.   ContextListener:   attributeReplaced('onLine',   '2') 
JS实例(三)图片的缓慢放大和缩小   我们经常能看到在一些网站中可以通过按钮实现对图片的放大或者缩小,也有可能是鼠标经过时图片放大。在本例中就是通过JavaScript实现图片的放大和缩小。   首先是进行简单的页面布局 1 <div class="imagedispose"> 2 <img src="1.jpeg" id="imaged" width="400px" height="3... 阅读详情

相关推荐

Dify插件实战:实时渲染AI生成的HTML/SVG/Canvas代码

在现代Web开发与AI应用集成中,前端渲染技术是实现动态内容展示的核心。其原理在于浏览器引擎解析HTML、CSS、JavaScript等代码,并将其转换为可视化的用户界面。这项技术的价值在于极大提升了开发效率与用户体验,允许开发者快速构建和迭代交互式应用。在AI应用开发领域,尤其是大语言模型(LLM)集成场景,如何将模型生成的**结构化代码**(如描述UI的HTML或数据图表的SVG)实时转化为可视化组件,成为一个关键需求。这直接关系到**Dify**等低代码AI平台能否提供流畅的、所见即所得的交互体验。本

weixin_42545664的博客 499

监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计

监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent   se)方法,这样就可以给在线人数加1。常用的监听接口有以下几个:ServletContextAttributeListene

3767

手把手教你用STM32F429+FreeRTOS搭建开源SIP电话(附代码与避坑指南)

本文详细介绍了如何使用STM32F429和FreeRTOS搭建开源SIP电话系统,涵盖硬件选型、FreeRTOS任务划分、PJSIP协议栈移植、音频系统优化及安全实践。通过实战案例和代码示例,帮助开发者快速实现嵌入式VoIP通信,特别适合物联网和音视频通信领域的应用开发。

weixin_33582311的博客 358

[转]session listener的配置和使用

在web.xml中增加listener的配置信息 <listener> <listener-class> com.SessionListener(实现session监听器接口的类的名字,包也要写上) </listener-class> </listener> ...

weixin_30414305的博客 380

国产数据库PolarDB-X实战:5分钟快速搭建本地开发环境(附Docker一键部署脚本)

本文提供了一份详尽的国产分布式数据库PolarDB-X本地开发环境搭建指南。通过Docker Compose一键部署脚本,开发者可在5分钟内快速启动一个功能完整的PolarDB-X实例,涵盖环境准备、脚本解析、连接验证及日常维护,极大简化了国产数据库的入门和体验流程。

weixin_29246195的博客 359

PCIe5.0均衡简介(整理版)

pcie5.0 均衡 equalization

m0_53559277的博客 9109

Session Listener实现在线人数统计功能

我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。这几天一直在努力实现这个功能,可是一直都有一点问题,即登出后立即登录会报错,最后用前端重定向刷新页面来解决,回顾一下。 Listener端: package cn.tedu.listner; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List;

Forever Young 432

ur3手眼标定+realsenseL515

知乎 csdn

AI_future的博客 978

第十章 会话管理(三) 会话监听器

会话监听器用于监听会话创建、过期及停止事件: public class MySessionListener1 implements SessionListener{ @Override public void onStart(Session session) {//会话创建时触发 System.out.println("会话创建:"+session.getId()); } @Ove

yifanSJ的博客 736

从零开始:手把手教你规划与部署华为FusionCompute虚拟化平台(含网络规划避坑指南)

本文详细介绍了华为FusionCompute虚拟化平台的规划与部署流程,特别针对网络规划中的常见问题提供了避坑指南。从硬件软件清单检查、网络平面配置到VRM部署方案选择,帮助用户高效完成部署并优化性能,适用于云计算环境中的虚拟化平台搭建。

weixin_28693447的博客 243

引文:当SVM转角遇上Copy-on-Write (COW)

本文分析了Linux内核中fork系统调用的Copy-on-Write(COW)机制实现原理。重点阐述了fork时父子进程共享物理页面、标记页表项为只读并在写操作时触发COW的流程,以及在SVM环境中通过MMU Notifier机制保持CPU和GPU页表同步的解决方案。文章详细描述了COW的三个阶段:初始共享、写入触发和页面复制,并说明了MMU Notifier的回调注册和处理流程,确保异构计算环境下内存一致性。

图形/计算GPU的驱动与虚拟化技术分享园地 2673

java 监听session_HttpSessionListener接口监听网站在线人数

listener代码123456789101112131415161718192021packagecom.chinaseacom.store.common;importjavax.servlet.http.HttpSessionEvent;importjavax.servlet.http.HttpSessionListener;publicclassMySessionListener...

weixin_39519769的博客 142

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java监听器详解_java之监听器详解

监听器接口定义了一个类要成为监听器必须具备的功能。所有的监听器接口也都必须继承监听器接口基类 java.util.EventListener;EventListener本身没有定义任何方法,它只是一个标志接口,用来表明所有继承自 EventListener的接口属于监听器接口。监听器接口定义了监听器必须实现的方法。可以在监听器接口中定义任意多的事件处理方法,取决于应用所需,事件处理方法以事件对象作...

weixin_32836221的博客 6034

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java监听器的四种实现方法

监听器的三种实现方法(OnlickListener) android监听有4种实现方法,匿名内部类实现,内部类实现,实现事件接口,覆写方法实现,控件onClick属性实现事件,下面我将一一举例。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我

qq_45259716的博客 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java 监听器

最开始理解java监听器的时候我有这些疑问! java监听器监听的内容是什么?监听器作用在哪个事件上?是在哪配置的监听内容的? 就带着这些问题理解一下java监听器吧! 首先,监听器要怎么实现? Java事件由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.uti...

小汤圆的博客 8935

java监听器是什么_Java监听器

在前面我们学习了图形界面的制作之后,顺其自然的我们会想到,要怎样才能实现登录等功能,如果只有一个界面,显然没有任何的实际意义。今天和大家一起学习的是Java监听器的使用,有了这方面的知识,相信大家能够对图形界面有更深入的了解。事件监听器:在swing事件模型中由3个分离的对象完成对事件的处理,分别为事件源,事件以及监听程序。事件源触发一个事件,它被一个或多个“监听器”接受,监听负责处理事件什么是事...

weixin_31829293的博客 1263

【Java监听器】

【代码】【Java监听器】

2402_83809625的博客 466

Java监听器详解

一.监听器的定义 是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生变化时,立即采取相应的行动。 Web应用当中监听器是什么? web监听器由servlet规范提供的,它可以监听客户端的请求,服务端的操作,监听的对象包括ServletContext,HttpSession,ServletRequest三个预对象(内置对象),分别对应aplication,session,request 内置对象 JSP中一共预先定义了9个这样的内置对象,分别为

m0_68006260的博客 1万+

Java中的监听器

监听器,是Java中的一个重要概念。 那么,监听器的应用场景有哪些?它有哪些分类?如何实现一个监听器?

程序员老李|前阿里技术专家,10 年前端。 做免费办公工具:图片压缩、PDF、Markdown、在线简历,全在浏览器本地处理。 文件不上传,不用注册。技术栈 Canvas、WebAssembly、Web Worker。 1660

一文带你掌握java web的监听器

手把手带你实现管理员将恶意用户踢下线的功能

weixin_45642975的博客 1451

Java监听器添加

Java项目添加监听器 第一步,在web.xml文件中添加监听标签 <listener> <listener-class>com.thinkgem.jeesite.modules.mjd.listener.WebContextListener2</listener-class> </listener> 第二步,编写监听器类 /** ...

qq_36216193的博客 1984

Java-监听器介绍

在Java中,监听器是一种设计模式,用于监视和响应对象的状态变化或事件的发生。监听器通常用于图形用户界面(GUI)应用程序中,以便在用户与界面进行交互时触发相应的事件。Java中的监听器由两个主要部分组成:事件源和事件监听器。事件源是能够产生事件的对象,而事件监听器是能够接收并处理事件的对象。事件源对象通常会注册一个或多个事件监听器来监听特定类型的事件。当事件源对象发生事件时,它将通知所有注册的监听器,并将事件对象传递给它们。监听器可以根据事件对象中的信息来执行相应的操作。

架构师之路。。 1453

Java监听器

什么是监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。。 为什么我们要使用监听器? 监听器可以用来检测网站的在线人数,统计网站的访问量等等! 监听器组件 监听器涉及三个组件:事件源,事件对象,事件监听器 当事件源发生某个动作的时候,它会调用事件监听器的方法,并在调用...

wujuncsdn的博客 301

初识java-监听器

Java事件监听器是由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。——通俗来讲就是:监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当监听对象发生上述事件后,监听器某个方法将立即被执行。当事件源发生某个动作的时候,它会调用事件监听器的方法,并在调用事件监听器的方法的时候把事件对象传递出去。-动作监听器:监听按钮被点击了,如果被点击了就会调用一个方法。-动作事件:按钮被点击后,可以获得按钮上的消息,按钮上的字。

woai3364的博客 2418

java的监听器实现

    我们都知道,我们的spring容器是通过classLoaderListener来创建的,而ClasssLoaderListener实现了ServletListener接口,这样,在比如tomcat初始化servlet容器时,我们就可以创建出我们的spring容器了。     下面我就来讲一下java中监听器是怎么样实现的。先来讲一下原理     java中的监听器涉及到三个对象,事件源,事...

远方的少年 4253

Java常用监听器

今晚,稍微看了下Java的一些基本

vincent_gor专辑 1059
上一篇: java去html标签
下一篇: Struts2 Annotation 注解配置
肖恩小羊
博客等级 码龄14年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值