81,092
社区成员
发帖
与我相关
我的任务
分享
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import java.sql.*;
public class CountListener implements HttpSessionListener {
private static long onlineNumber=0;
public void sessionCreated(HttpSessionEvent arg0) {
onlineNumber++;
arg0.getSession().setMaxInactiveInterval(60);
}
public void sessionDestroyed(HttpSessionEvent arg0) {
onlineNumber--;
if(onlineNumber<=0) onlineNumber=1;
String username=(String)arg0.getSession().getAttribute("username");
if(username!=null&&!username.trim().equals("")){
long ctime=arg0.getSession().getCreationTime();
long dtime=arg0.getSession().getLastAccessedTime();
long online=(dtime-ctime)/1000;
Connection conn=DB.getConn();
Statement stmt=DB.getStmt(conn);
try {
stmt.executeUpdate("update users set onlinetime=onlinetime+"+online+" where username='"+username+"'");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DB.close(stmt);
DB.close(conn);
}
}
public static long getOnlineNumber(){
return onlineNumber;
}
}