Java三大器(过滤器,拦截器,监听器)之监听器-demo1:统计在线用户数

来源:互联网 发布:2017网络暴力的新闻 编辑:程序博客网 时间:2024/06/06 00:41

代码:http://pan.baidu.com/s/1c1EA14s

本质就是:统计session个数。然而每个用户都只在自己的session空间里活动,所以某个用户 代码 无法获得其他用户的session。(目前如此)


思想:

通过session的监听器。创建session,session个数加一,销毁session,session减一。

这里 重写session的监听器里: session的创建和销毁 事件处理函数,就可以了。

然后每次改变session个数时,先要从servletContext对象.getAttribute("totalOnline"),拿到session总数:totalOnline。

改变后,再servletContext对象.setAttribute("totalOnline",totalOnline),存回servletContext。


===页面显示更简单了,直接从servletContext里取就是了。


为了便于测试,配置session 生命周期 1分钟。

完整web.xml。====监听器配置很简单。

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>day41test</display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <servlet>  <servlet-name>testCreateSession</servlet-name>  <servlet-class>demo1_totalOnline.testCreateSession</servlet-class>  </servlet>  <servlet-mapping>  <servlet-name>testCreateSession</servlet-name>  <url-pattern>/testCreateSession</url-pattern>  </servlet-mapping>      <listener>    <listener-class>demo1_totalOnline.onlineUserListener</listener-class>  </listener>    <session-config>  <session-timeout>1</session-timeout>  </session-config></web-app>


原创粉丝点击