Servlet_Listener监听器

监听器在监听时涉及到的几个部分:事件,事件源,监听器,处理器。
将监听器绑定到事件源上,当事件发生时触发监听器中的成员方法(即处理器),处理器根据获取到的事件对象对事件进行处理。
Servlet中共有8种监听器(可分为3类):

  1. 用于监听域对象创建和销毁的事件监听器(ServletContextListener接口,HttpSessionListener接口,ServletRequestListener接口)
  2. 用于监听域对象属性增加和删除的事件监听器(ServletContextAttributeListener接口,HttpSessionAttributeListener接口,ServletRequestAttributeListener接口)(Attribute:属性)
  3. 用于监听绑定到HttpSession域中某个对象状态的事件监听器
    a)HttpSessionBindingListener接口:用于监听JavaBean对象绑定到HttpSession对象和从HttpSession对象解绑的事件。
    b)HttpSessionActivationListener接口:用于监听HttpSession中对象活化和钝化的过程。

监听域对象的生命周期

  1. 编写一个实现了ServletContextListener接口,HttpSessionListener接口,ServletRequestListener接口的监听器实例。
public class TestListener implements ServletContextListener, ServletRequestListener,HttpSessionListener {
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext 对象创建");
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext 对象销毁");
}
public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
System.out.println("ServletRequest 对象销毁");
}
public void requestInitialized(ServletRequestEvent servletRequestEvent) {
System.out.println("ServletRequest 对象创建");
}
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
System.out.println("HttpSession 对象创建");
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
System.out.println("HttpSession 对象销毁");
}
}

  1. 在web.xml中配置监听器类信息
<listener>
<listener-class>Listener.TestListener</listener-class>
</listener>

注意:在Servlet2.4之前,<listener>元素必须放在所有<servlet>元素之前,且在所有<filter-mapping>元素之后。


  1. 开启web服务器,并打开一个页面文件(.html不行,不支持session)
    在开启/关闭web服务器的时候,能看到ServletContext对象创建/销毁的提示
    浏览器发出请求后,web容器会创建ServletRequest对象和HttpSession对象,请求完成后ServletRequest对象随之销毁,HttpSession对象会在关闭浏览器或Session过期后销毁。
posted @   独游空想家  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示