看看role=(String)(ss.getAttribute("thelogrole"));
中role的值是不是为null。

解决方案 »

  1.   

    sessionCreated这个方法是在一个客户端Session被建立时被调用的。在Session建立时,thelogrole和theuser还没有被放入Session,所以你取出来的是null。
      

  2.   

    public static void createsession(HttpSessionEvent se )
    {
    HttpSession ss = se.getSession();
    // HttpSession ss = request.getSession(true);
    if(ss!=null)
    {
    String role=(String)(ss.getAttribute("thelogrole"));//"admin";//
    String userid=(String)(ss.getAttribute("theuser"));//"noblezhao";//
    //userid=ss.getId();
    int rolenum=0;
    if (role.equals("teacher"))
    rolenum=1;
    if (role.equals("admin"))
    rolenum=2;
    if (role.equals("superadmin"))
    rolenum=3;
    String sql="insert into online (role,userid) Values("+rolenum+",'"+userid+"')";
    PaperDB paperdb=new PaperDB();
    try{
    paperdb.executeUpdate(sql);

    }catch(Exception e)
    {
    System.out.println("database connection error!");
    }
    finally{
    paperdb.close();
    }
    }
    activeSessions++; 

    }
    看到一篇文章,建立的时候调用上面这个方法可以查到数据库里,但是session
    失效的时候却不能删除数据库记录,为什么????
      

  3.   

    http://tech.ccidnet.com/pub/article/c1112_a57285_p1.html
    看看这个,用HttpSessionBindingListener。