千家信息网

Listener怎么监听Http Session

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Listener怎么监听Http Session,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Listener 是Servlet 的监听
千家信息网最后更新 2026年11月03日Listener怎么监听Http Session

Listener怎么监听Http Session,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

Servlet Context Attribute Listener监听对Servlet Context 属性的操作,比如增加、删除、修改属性。

Servlet Context Listener监听Servlet Context 。当创建Servlet Context 时,激发Context Initialized (Servlet Context Event sce)方法;当销毁Servlet Context 时,激发Context Destroyed(Servlet Context Event sce)方法。

Http Session Listener监听Http Session的操作。当创建一个Session时,激发session Created(Http Session Event se)方法;当销毁一个Session时,激发session Destroyed (Http Session Event se)方法。

Http Session Attribute Listener监听Http Session中的属性的操作。当在Session增加一个属性时,激发attribute Added (Http Session Binding Event se) 方法;当在Session删除一个属性时,激发attribute Removed(Http Session Binding Event se)方法;当在Session属性被重新设置时,激发attribute Replaced(Http Session Binding Event se) 方法。

下面我们开发一个具体的例子,这个监听器能够统计在线的人数。在Servlet Context 初始化和销毁时,在服务器控制台打印对应的信息。当Servlet Context 里的属性增加、改变、删除时,在服务器控制台打印对应的信息。

要获得以上的功能,监听器必须实现以下3个接口:
◆HttpSessionListener
◆Servlet Context Listener
◆Servlet Context AttributeListener

import javax.servlet.http.*;  import javax.servlet.*;  public class OnLineCountListener implements HttpSessionListener,  ServletContextListener,ServletContextAttributeListener  {  private int count;  private ServletContext context = null;  public OnLineCountListener()  {  count=0;  //setContext();  }  //创建一个session时激发  public void sessionCreated(HttpSessionEvent se)  {  count++;  setContext(se);  }  //当一个session失效时激发  public void sessionDestroyed(HttpSessionEvent se)  {  count--;  setContext(se);  }  //设置context的属性,它将激发attributeReplaced或attributeAdded方法  public void setContext(HttpSessionEvent se)  {  se.getSession().getServletContext().  setAttribute("onLine",new Integer(count));  }  //增加一个新的属性时激发  public void attributeAdded(ServletContextAttributeEvent event) {  log("attributeAdded('" + event.getName() + "', '" +  event.getValue() + "')");  }  //删除一个新的属性时激发  public void attributeRemoved(ServletContextAttributeEvent event) {  log("attributeRemoved('" + event.getName() + "', '" +  event.getValue() + "')");  }  //属性被替代时激发  public void attributeReplaced(ServletContextAttributeEvent event) {  log("attributeReplaced('" + event.getName() + "', '" +  event.getValue() + "')");  }  //context删除时激发  public void contextDestroyed(ServletContextEvent event) {  log("contextDestroyed()");  this.context = null;  }  //context初始化时激发  public void contextInitialized(ServletContextEvent event) {  this.context = event.getServletContext();  log("contextInitialized()");  }  private void log(String message) {  System.out.println("ContextListener: " + message);  }  }

在OnLine Count Listener 里,用count代表当前在线的人数,OnLine Count Listener将在Web服务器启动时自动执行。当 OnLine Count Listener构造好后,把count设置为0。每增加一个Session,OnLine Count Listener会自动调用 session Created(Http Session Event se)方法;每销毁一个Session,OnLine Count Listener会自动调用session Destroyed (Http Session Event se)方法。当调用session Created(Http Session Event se)方法时,说明又有一个客户在请求,此时使在线的人数(count)加1,并且把count写到Servlet Context 中。 Servlet Context 的信息是所有客户端共享的,这样,每个客户端都可以读取到当前在线的人数。

从作用域范围来说,Servlet 的作用域有Servlet Context ,Http Session,Servlet Request.

看完上述内容,你们掌握Listener怎么监听Http Session的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

方法 监听 属性 在线 人数 客户 监听器 服务 信息 服务器 作用 内容 客户端 接口 控制台 更多 端的 问题 控制 束手无策 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 重生之互联网科技帝国 互联网科技开发公司 深圳科技互联网 无线互联网科技 菲比寻常互联网科技 互联网科技英文翻译 中国最先进互联网科技公司 湖南洣水互联网科技有限公司扣款 成都玖崟互联网科技有限公司乐商圈怎么样 济南华为互联网科技产业总部基地 贵州叶脉互联网科技有限公司所属行业 恒生互联网科技指数跳水 呼和浩特新华互联网科技学院 厦门江牛科技互联网 下一代互联网重大应用科技园 安徽零酒互联网科技有限公司 科技互联网专业务虚会材料 现代科技的标志之一的互联网 利用互联网等科技手段 上海喔噻互联网科技有限公司 中资互联网科技 互联网络科技有限公司 互联网的科技创新 万易互联网科技有限公司 亿人帮互联网科技 爱医互联网络科技 互联网科技圈年度人物 版纳互联网科技选哪家 小牛互联网科技有限公司地址
0