package com.zou.servlet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionCounterListener implements HttpSessionListener {
private static final String COUNT_ATTR = "SESSION_COUNTER";
//求得在线的会员的数量
public void sessionCreated(HttpSessionEvent hse) {
int[] counter = this.getCounter(hse);
counter[0]++;
}
public void sessionDestroyed(HttpSessionEvent hse) {
int[] counter = this.getCounter(hse);
counter[0]--;
}
public int[] getCounter(HttpSessionEvent hse){
HttpSession session = hse.getSession();
ServletContext context = session.getServletContext();
int[] counter = (int[])context.getAttribute(COUNT_ATTR);
if(counter == null){
counter = new int[1];
context.setAttribute(COUNT_ATTR, counter);
}
return counter;
}
}
在用以上这个程序的时候,你还要配置一下web.xml这个文件,具体的配置如下,在这里不做解释,只是列出代码。<listener>
<listener-class>
com.zou.servlet.SessionCounterListener
</listener-class>
</listener>
这是一个监听器,我想对于监听器的解释,自己认为就是用来监呼系统的某些操作,比如系统session的创建和结束,以及系统数据库资源的加载,以上这个程序就是实现了在线用户数量的统计。
页面上可以用以下的代码来显示用户数量
<c:out value="${SESSION_COUNTER[0]}">
这里用到了jstl标签,大家应该很熟悉吧,在此不多做说明。
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionCounterListener implements HttpSessionListener {
private static final String COUNT_ATTR = "SESSION_COUNTER";
//求得在线的会员的数量
public void sessionCreated(HttpSessionEvent hse) {
int[] counter = this.getCounter(hse);
counter[0]++;
}
public void sessionDestroyed(HttpSessionEvent hse) {
int[] counter = this.getCounter(hse);
counter[0]--;
}
public int[] getCounter(HttpSessionEvent hse){
HttpSession session = hse.getSession();
ServletContext context = session.getServletContext();
int[] counter = (int[])context.getAttribute(COUNT_ATTR);
if(counter == null){
counter = new int[1];
context.setAttribute(COUNT_ATTR, counter);
}
return counter;
}
}
在用以上这个程序的时候,你还要配置一下web.xml这个文件,具体的配置如下,在这里不做解释,只是列出代码。<listener>
<listener-class>
com.zou.servlet.SessionCounterListener
</listener-class>
</listener>
这是一个监听器,我想对于监听器的解释,自己认为就是用来监呼系统的某些操作,比如系统session的创建和结束,以及系统数据库资源的加载,以上这个程序就是实现了在线用户数量的统计。
页面上可以用以下的代码来显示用户数量
<c:out value="${SESSION_COUNTER[0]}">
这里用到了jstl标签,大家应该很熟悉吧,在此不多做说明。