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

Listener监听器

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

Listener监听器

Listener 概述

监听器是 Servlet 中一种特殊的类,它们能帮助开发者监听 Web 中的特定事件,比如 ServletContext,HttpSession,ServletRequest 的创建和销毁;属性键值对的创建、销毁和修改等,可以在某些动作前后增加处理和操作。

作用
  • 统计在线人数,利用 HttpSessionLisener 或 HttpSessionAttributeListener
  • 加载初始化信息:利用 ServletContextListener
  • 统计网站访问量
  • 实现访问监控
常见 API
// 监听上下文对象的初始化和销毁
interface ServletContextListener {
    // 通知上下文对象正在被初始化
    void contextInitialized(ServletContextEvent var1);

    // 通知上下文对象即将被关闭
    void contextDestroyed(ServletContextEvent var1);
}

// 监听上下文对象对属性的增删改操作
interface ServletContextAttributeListener {
    // 通知添加了属性键值对
    void attributeAdded(ServletContextAttributeEvent var1);

    // 通知移除了属性键值对
    void attributeRemoved(ServletContextAttributeEvent var1);

    // 通知修改了属性
    void attributeReplaced(ServletContextAttributeEvent var1);
}

// 监听Session对象的创建和销毁
interface HttpSessionListener {
    // session已创建
    void sessionCreated(HttpSessionEvent var1);

    // session已销毁
    void sessionDestroyed(HttpSessionEvent var1);
}

// 监听session的属性增删改操作
interface HttpSessionAttributeListener {
    // 通知session中添加了属性
    void attributeAdded(HttpSessionBindingEvent var1);

    // 通知session中移除了属性
    void attributeRemoved(HttpSessionBindingEvent var1);

    // 通知session中修改了属性
    void attributeReplaced(HttpSessionBindingEvent var1);
}
    
// 监听请求的初始化和销毁
interface ServletRequestListener {
    // 通知请求对象被销毁
    void requestDestroyed(ServletRequestEvent var1);

    // 通知请求对象正在初始化
    void requestInitialized(ServletRequestEvent var1);

    // 通知请求对象添加了属性
    void attributeAdded(ServletRequestAttributeEvent var1);

    // 通知请求对象移除了属性
    void attributeRemoved(ServletRequestAttributeEvent var1);

    // 通知请求对象修改了属性
    void attributeReplaced(ServletRequestAttributeEvent var1);
}
两种配置方式 1、注解 步骤
  1. 实现监听器接口

  2. 重写抽象方法

  3. 声明@WebListener注解

案例代码
// 声明监听器注解
@WebListener
public class CreateListener implements ServletContextListener {
    // 重写contextInitialized方法
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("Servlet be initialized!!");
    }

    // 重写contextDestroyed方法
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("Servlet be destroyed!!");
    }
}
2、通过 web.xml 配置文件

监听器

public class XMLListener implements HttpSessionListener {
    // 重写sessionCreated方法
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("Session be created: " + httpSessionEvent.getSession().getId());
    }
    
    // 重写sessionDestroyed方法
    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("Session be destroyed!!");
    }
}

Servlet

@WebServlet("/xml")
public class XMLServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession(true);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

Webxml文件




    
    
        com.fc.listener.XMLListener
    

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

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

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