用session 副给个人 用application统计在线人数
解决方案 »
- cas单点登录客户端访问服务器登录页面没有问题,成功后返回报错,求高人指点,,,,
- JavaScript的dTree问题,在线等
- jfreechart图片不显示
- 初学用户注册求助:java.lang.NullPointerException
- DOM parse 大文件 outofMemory问题
- 编译时总报错,这是怎么回事?
- 问大家一个问题就是在关闭页时(window.close())如何不出现WINDOW的提示框?
- 不让TOMCAT 显示文件列表???
- 请问各位高手,如何在浏览中禁止拷贝?禁止点击鼠标右键,以及禁止IE浏览器的编辑菜单?
- java如何获取别人网页的验证码,并把这个验证码返回的自己的页面并显示。
- 请问大家用什么jsp调试开发工具,jsp有什么调试技巧吗?
- JSP实现用户在线名单的问题!高手过来帮忙!
openDb.executeQuery("update onlineuser set logondate=sysdate where username='"+name+"'");
如果用户在线的话,把logondate记为当前时间
openDb.executeQuery("delete from onlineuser where (logondate+1/360)<sysdate");
如果用户最后在线时间与当前时间大于4分钟,说明用户已经离开,在onlineuser中删除此用户
如果这两句sql语句都写在iframe中,当用户离线时,iframe也关闭了,第二句
openDb.executeQuery("delete from onlineuser where (logondate+1/360)<sysdate");怎么执行呢???还用一种方案如下:
登录加入:
<jsp:useBean id="monitor" scope="application" class="java.util.HashMap" />monitor.put(session,user.getUserName());//user是个对象类
UserMap map = new UserMap();
map.setMap(monitor);
session.setAttribute("Binder.object",map);UserMap是一个实现HttpSessionListener的类:
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import java.util.*;public class UserMap implements HttpSessionBindingListener {
private HashMap map; public void valueBound(HttpSessionBindingEvent event) {
} public void valueUnbound(HttpSessionBindingEvent event) {
map.remove(event.getSession());
} public void setMap(HashMap map){
this.map = map;
}
}退出时jsp:
((HashMap)application.getAttribute("monitor")).remove(session);
session.invalidate();查询在线用户jsp:
HashMap monitor = ((HashMap)application.getAttribute("monitor"));
Iterator keyIter = monitor.keySet().iterator(); while(keyIter.hasNext()){
HttpSession https = (HttpSession)keyIter.next(); out.println("<tr>"); out.println("<td bgcolor=\"EEEEEE\" width=\"5%\">");
out.println("<div align=\"center\">" + (String)monitor.get(https) + "</div>");
out.println("</td>");
....
....
}