监听器小例子之统计在线人数
来源:互联网 发布:江西泰豪软件 编辑:程序博客网 时间:2024/06/11 15:00
监听器小例子
统计同时在线人数:
每当有一个用户登录的时候在服务器端创建一个session对象,写一个监听器,监听session的创建与销毁,每当创建一个session对象的时候就把计数器+1,然后保存到servletContext对象上,每当有一个用户下线的时候就销毁对应的session对象,把计数器-1,保存到servletContext上。
CountListener.java代码:
package web;import javax.servlet.ServletContext;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class CountListener implements HttpSessionListener{private int count = 0; //计数器/** * session对象创建之后,容器会产生HttpSessionEvent事 * 件,然后调用sessionCreated方法。 */public void sessionCreated(HttpSessionEvent arg0) {System.out.println("sessionCreated start ...");count ++;//通过事件对象(HttpSessionEvent)找到sessionHttpSession session = arg0.getSession();ServletContext sctx = session.getServletContext();//将人数count绑定到servletContext,这样,可以随时访问。sctx.setAttribute("count",count);}/** * 容器在销毁session对象之后,会调用sessionDestroyed方 * 法。 */public void sessionDestroyed(HttpSessionEvent arg0) {System.out.println("sessionDestoyed start ...");count --;//通过事件对象(HttpSessionEvent)找到sessionHttpSession session = arg0.getSession();ServletContext sctx = session.getServletContext();//将人数count绑定到servletContext,这样,可以随时访问。sctx.setAttribute("count",count);}}
logout.jsp
因为关闭浏览器并不能销毁对应的session对象,故手动删除对应的session对象。
<%session.invalidate();%>
index.jsp
<body> <h1>hello</h1> This is my JSP page. <br> <!-- ServletContext == application --> 在线人数:<%=application.getAttribute("count") %><br/> <a href="logout.jsp">退出系统</a> </body>
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 配置文件先后顺序 一般是:--> <!-- 全局参数->过滤器->监听器->servlet、servlet-mapping->错误处理页面 --> <!-- 全局初始化参数 --> <context-param> <param-name>company</param-name> <param-value>hello</param-value> </context-param> <!-- 监听器 --> <listener> <listener-class>web.CountListener</listener-class> </listener> <!-- 首页 http://ip:port/appname --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
小知识:
配置文件先后顺序 一般是:
全局参数->过滤器->监听器->servlet、servlet-mapping->错误处理页面
0 0
- 监听器小例子之统计在线人数
- 监听器统计在线人数
- Servlet监听器——实现在线登录人数统计小例子
- Servlet监听器——实现在线登录人数统计小例子
- 监听器案例----统计在线人数
- session监听器,用于统计在线人数
- (转)Servlet监听器统计在线人数
- 使用java 监听器实现在线人数统计
- 监听器(实现在线统计人数,踢人)
- 监听器--ServletRequestListener接口实现统计在线人数
- Servlet监听器实现网站在线人数统计
- 利用监听器实现网站在线人数统计
- jsp监听器实现在线人数统计
- 监听器,统计在线用户及人数
- Java监听器学习 统计当前在线人数
- Servlet监听器(统计在线人数案例)
- Servlet监听器,统计网站在线人数实例
- Java监听器学习 统计当前在线人数
- tomcat 45秒启动不来
- 黄金
- 第十周练习 1002 手机短号
- 使用ps制作社保照片
- Android之DDMS无法查看/data/data目录
- 监听器小例子之统计在线人数
- Memcached, Redis, MongoDB三者比较
- 进程内组件编写需要手动添加的函数
- 旧版本scrapy升级新版本遇到的一些问题
- Android数据存储之:文件存储
- 文件I/O
- Scala学习到精通是spark大数据
- Mac Android NDK 安装方法
- UIDatePicker 日期/时间选取器(滚轮)—IOS开发