代码: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>