http://www.javaresearch.org/article/showarticle.jsp?column=2&thread=406

解决方案 »

  1.   


    建立一个表 onlineUser 专门记录在线会员的状态
    username 用户名
    ip       用户IP
    time     用户操作的时间
    主要就是这三个字段流程:
    1。设定用户的有效操作时间为30分钟
    2。用户成功登陆时,查询该表是否有该用户名,
       如果没有,则插入该用户名、用户信息与当前时间
       如果有,则更新该记录(你可以做其它的操作并达到你的要求,这里你自己去扩展)
    3。现在要做的就是,每个页面都要包含执行一个方法(做法可以很多,所有页面都INCLUDE一个页面,所有页面都包含同一个JAVABEAN并执行同一个方法),这个方法要做的就是:
       *删除onlineUser表中所有 time<当前时间-30分钟 的字段
       *判断用户是否登陆(session来判断),如果是则判断该用户名是否存在于onlineUser表中,如果不存在则证明用户操作过时了,让他重新登陆,如果存在则更新该用户的time值  4。现在这张表中的所有用户就是在线用户的名单了,
    5。这样的流程可能不是最优的,只给你提供一个思路,有更好的告诉我