今日技术碎片

1、Java事件监听机制三要素:事件源、事件对象、监听器。

2、Servlet中监听器的用法就是对application、session、request对象的创建及销毁以及属性增加、修改、删除事件的监听。

Servlet API提供以下事件对象:

  1. javax.servlet.AsyncEvent - 在ServletRequest(通过调用ServletRequest#startAsync或ServletRequest#startAsync(ServletRequest,ServletResponse))启动的异步操作已完成,超时或产生错误时触发的事件。
  2. javax.servlet.http.HttpSessionBindingEvent - 将此类型的事件发送到实现HttpSessionBindingListener的对象,当该对象从会话绑定或解除绑定时,或者发送到在web.xml中配置的HttpSessionAttributeListener,当绑定任何属性时,在会话中取消绑定或替换。会话通过对HttpSession.setAttribute的调用来绑定对象,并通过调用HttpSession.removeAttribute解除对象的绑定。当对象从会话中删除时,我们可以使用此事件进行清理活动。
  3. javax.servlet.http.HttpSessionEvent - 这是表示Web应用程序中会话更改的事件通知的类。
  4. javax.servlet.ServletContextAttributeEvent - 关于对Web应用程序的ServletContext的属性进行更改的通知的事件类。
  5. javax.servlet.ServletContextEvent - 这是关于Web应用程序的servlet上下文更改的通知的事件类。
  6. javax.servlet.ServletRequestEvent - 此类事件表示ServletRequest的生命周期事件。事件的源代码是这个Web应用程序的ServletContext。
  7. javax.servlet.ServletRequestAttributeEvent - 这是事件类,用于对应用程序中servlet请求的属性进行更改的通知。

Servlet API提供了以下监听器接口:

  1. javax.servlet.AsyncListener - 如果在添加了侦听器的ServletRequest上启动的异步操作已完成,超时或导致错误,将会通知侦听器。
  2. javax.servlet.ServletContextListener - 用于接收关于ServletContext生命周期更改的通知事件的接口。
  3. javax.servlet.ServletContextAttributeListener - 接收关于ServletContext属性更改的通知事件的接口。
  4. javax.servlet.ServletRequestListener - 用于接收关于进入和超出Web应用程序范围的请求的通知事件的接口。
  5. javax.servlet.ServletRequestAttributeListener - 接收关于ServletRequest属性更改的通知事件的接口。
  6. javax.servlet.http.HttpSessionListener - 接收关于HttpSession生命周期更改的通知事件的接口。
  7. javax.servlet.http.HttpSessionBindingListener - 使对象从会话绑定到绑定或从其绑定时被通知。
  8. javax.servlet.http.HttpSessionAttributeListener - 用于接收关于HttpSession属性更改的通知事件的接口。
  9. javax.servlet.http.HttpSessionActivationListener - 绑定到会话的对象可能会侦听容器事件,通知他们会话将被钝化,该会话将被激活。需要在VM或持久化会话之间迁移会话的容器来通知绑定到实现HttpSessionActivationListener的会话的所有属性。

3、web.xml的加载顺序是:【Context-Param】->【Listener】->【Filter】->【Servlet】,而同个类型之间的实际程序调用的时候的顺序是根据对应的Mapping的顺序进行调用。

4、使用缓存是系统优化的第一法宝,使用异步是系统优化的第二法宝。

posted on   时间朋友  阅读(147)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2017-03-05 再看《高效能人士的七个习惯》
2016-03-05 2016第9周六
2015-03-05 2015第10周四-CSS小结
2014-03-05 2014第10周三高效程序员的习惯
2013-03-05 2013年3月5日星期二

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示