java监听器实现在线人数统计
本文实例为大家分享了java在线人数统计的具体代码,供大家参考,具体内容如下
1. 项目结构
2. 代码
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 32 33 34 35 | package com; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; /** * Application Lifecycle Listener implementation class MyContexxtLis * */ @WebListener public class CountListen implements ServletContextListener { /** * Default constructor. */ public CountListen() { // TODO Auto-generated constructor stub } /** * @see ServletContextListener#contextInitialized(ServletContextEvent) */ public void contextInitialized(ServletContextEvent arg0) { arg0.getServletContext().setAttribute( "count" , 100 ); } /** * @see ServletContextListener#contextDestroyed(ServletContextEvent) */ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } } |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package com; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; @WebListener public class SessionListen implements HttpSessionListener, HttpSessionAttributeListener { public SessionListen() { // TODO Auto-generated constructor stub } public void attributeRemoved(HttpSessionBindingEvent arg0) { System.out.println( "remove" + "\t" +arg0.getName()+arg0.getValue()); } public void attributeAdded(HttpSessionBindingEvent arg0) { System.out.println( "add" + "\t" +arg0.getName()+arg0.getValue()); } public void attributeReplaced(HttpSessionBindingEvent arg0) { System.out.println( "replace" + "\t" +arg0.getName()+arg0.getValue()); } public void sessionCreated(HttpSessionEvent arg0) { System.out.println( "session create" ); Integer i=(Integer)arg0.getSession().getServletContext().getAttribute( "count" ); i++; arg0.getSession().getServletContext().setAttribute( "count" , i); } public void sessionDestroyed(HttpSessionEvent arg0) { Integer i=(Integer)arg0.getSession().getServletContext().getAttribute( "count" ); i--; arg0.getSession().getServletContext().setAttribute( "count" , i); System.out.println( "session destroy" +i); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < title >Insert title here</ title > </ head > < body > <%session.setMaxInactiveInterval(3); %> 当前在线人数:${count} </ body > </ html > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
SpringBoot初始教程之Servlet、Filter、Listener配置详解
本篇文章主要介绍了SpringBoot初始教程之Servlet、Filter、Listener配置详解,具有一定的参考价值,有兴趣的可以了解一下2017-09-09解读CommandLineRunner和@PostConstruct区别与应用场景
这篇文章主要介绍了解读CommandLineRunner和@PostConstruct区别与应用场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12springboot使用DynamicDataSource动态切换数据源的实现过程
这篇文章主要给大家介绍了关于springboot使用DynamicDataSource动态切换数据源的实现过程,Spring Boot应用中可以配置多个数据源,并根据注解灵活指定当前使用的数据源,需要的朋友可以参考下2023-08-08SpringBoot使用MockMvc进行单元测试的实例代码
在Spring Boot应用程序中,使用MockMvc进行单元测试是一种有效的方式,可以验证控制器的行为和API的正确性,在这篇博客中,我们将介绍如何使用MockMvc对用户控制器进行测试,感兴趣的朋友可以参考下2024-01-01java实现服务器文件打包zip并下载的示例(边打包边下载)
这篇文章主要介绍了java实现服务器文件打包zip并下载的示例,使用该方法,可以即时打包文件,一边打包一边传输,不使用任何的缓存,让用户零等待,需要的朋友可以参考下2014-04-04
最新评论