在用户登录时,我在数据库里记录了sessionid,
现在就想在一个定时任务里通过sessionid找到该用户,并对其作出不同的操作.请问应该怎么办???

解决方案 »

  1.   

    myeclipse+struts+hibernate+spring学习论坛群9967568
      

  2.   

    create table user
    (
    sessionid int,
    dowhat int,
    )
    String sql="select * from user where sessionid="+session.getAttribute("sessionid")+"";
    DBConn mdb .....;
    ResultSet rs = mdb.executeQuery(sql);
    int dowhat = rs.getInt("dowhat");
    switch(dowhat){
    case 1:
    do 1;
    case 2:
    do 2
    default: do other
    }
    If your mean that.
      

  3.   

    我的意思是:管理员能拿到用户的SESSIONID,如果管理员想踢掉该用户,就要求让其SESSION过期,这时该怎么做???
    我的想法是:通过SESSIONID,找到相应的SESSION,然后就让SESSION.invalidate()。各位有好的办法吗?谢啦
      

  4.   

    通过sessionid是不能得到session对象的,否则违反了java的安全机制(最早期的jdk版本才可以,后来java为了安全考虑,把这个功能去掉了)。
    你可以在用户登录的时候用一个全局变量来保存sessionid和userid的对应关系,或存在数据库中,当你想踢掉某个用户时,只需要删除其对应关系,同时在用户每次操作的时候都要判断该用户是否与某个sessionid对应。最好存在全局变量中,速度会快些。
      

  5.   

    不是通过你说的方法实现的程序读全局中的ID 如果有自己的 就调用 SESSION.invalidate()。