监听器

监听器
1) Listener用于监听JavaWeb程序中的事件。
2) 例如:ServletContext、HttpSession、ServletRequest的创建、修改和删除。
3) 监听器的类型分为 
  ① 生命周期
  ② 数据绑定


复制代码
package com.atguigu.login.listener;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 监听Session生命周期相关的事件
 *
 */
public class MySessiListeneron implements HttpSessionListener {
    
    /**
     * 当监听到session对象被创建,则会执行该方法
     */
    public void sessionCreated(HttpSessionEvent se)  { 
        //ServletContext :Servlet上下文对象. 
        //  WEB应用服务器会为每个web应用创建唯一一个ServletContext对象. 
        //  在整个web应用中作用域最大且是所有的用户可共享的. 
        //  ServletContext在web引用服务器启动则被创建, 服务器销毁此对象才会被销毁. 
        
        
        //获取到ServletContext 
        ServletContext sc = se.getSession().getServletContext();
        //我们会在ServletContext中绑定一个在线人数, 通过  count 这个key
        //尝试从Servletcontext中获取 count
        
        Object count = sc.getAttribute("count");
        if(count == null) {
            // 第一个用户上线
            sc.setAttribute("count", 1);
        }else {
            sc.setAttribute("count", (Integer)count+1 );
        }
        
    }
    /**
     * 当监听到session对象被销毁,则会执行该方法
     */
    public void sessionDestroyed(HttpSessionEvent se)  { 
        
    }
    
}
复制代码

 

posted @   kkzhang  阅读(186)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2019-05-09 札记-碎碎念
点击右上角即可分享
微信分享提示