使用java 监听器实现在线人数统计
2009-12-16 15:41
633 查看
1. 在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener {
private static int count = 0;
public void sessionCreated(HttpSessionEvent se) {
count++;
System.out.println("session创建:" + new java.util.Date());
}
public void sessionDestroyed(HttpSessionEvent se) {
count--;
System.out.println("session销毁:" + new java.util.Date());
}
public static int getCount() {
return count;
}
}
2. 配置web.xml
<listener>
<description>session监听器</description>
<listener-class>com.xxx.SessionListener</listener-class>
</listener>
3. 在JSP页面中显示在线人数
<%
int count=com.xxx.SessionListener.getCount();
out.println("在线人数:"+count);
%>
注意:servlet中对session的监听有很多接口,功能很灵活,最常用的是监听Session和Attribute。这里要澄清一下概念,servlet中的session监听和Attribute监听含义有差别,session监听指的不是我们一般所理解的放置一个session或者销毁一个session,这是Attribute监听的功能,因为servlet中放置session的语法是session.setAttribute(“session名”,要放入的对象)。而session监听,监听的是HTTP连接,只要有用户与server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection,用来统计当前在线用户数最合适了。
问题补充:当客户端直接关闭浏览器,sessionDestroyed方法将不会被触发,该用什么办法那?
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener {
private static int count = 0;
public void sessionCreated(HttpSessionEvent se) {
count++;
System.out.println("session创建:" + new java.util.Date());
}
public void sessionDestroyed(HttpSessionEvent se) {
count--;
System.out.println("session销毁:" + new java.util.Date());
}
public static int getCount() {
return count;
}
}
2. 配置web.xml
<listener>
<description>session监听器</description>
<listener-class>com.xxx.SessionListener</listener-class>
</listener>
3. 在JSP页面中显示在线人数
<%
int count=com.xxx.SessionListener.getCount();
out.println("在线人数:"+count);
%>
注意:servlet中对session的监听有很多接口,功能很灵活,最常用的是监听Session和Attribute。这里要澄清一下概念,servlet中的session监听和Attribute监听含义有差别,session监听指的不是我们一般所理解的放置一个session或者销毁一个session,这是Attribute监听的功能,因为servlet中放置session的语法是session.setAttribute(“session名”,要放入的对象)。而session监听,监听的是HTTP连接,只要有用户与server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection,用来统计当前在线用户数最合适了。
问题补充:当客户端直接关闭浏览器,sessionDestroyed方法将不会被触发,该用什么办法那?
相关文章推荐
- java使用监听器实现一个统计网站在线人数的示例
- java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户
- Servlet监听器的简单使用实现统计在线人数
- java使用监听器实现对在线用户的统计
- 使用监听器实现一个统计网站在线人数的示例
- 利用java监听器实现在线人数统计
- Java监听器实现网站在线人数统计
- 使用监听器实现一个统计网站在线人数的示例
- java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户
- Java监听器学习 统计当前在线人数
- Servlet监听器实现网站在线人数统计
- 监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息
- javaweb中实现在线人数统计
- 如何使用Servlet监听器实现网站在线人数统计
- servlet+java+jsp实现在线人数的统计
- 利用监听器实现在线人数统计
- java 实现统计在线人数
- java实现在线人数统计 (2011-05-30 15:10)
- 对jsp的一个小结(8)使用servlet控制新闻管理、使用过滤器(解决乱码)和监听器(统计在线用户人数)
- javaweb中实现在线人数统计