public void sessionCreated(HttpSessionEvent hse)       
   { 
//怎么在此处取得Session(SysUserID)的值   
         hse.getSession().getAttribute(.....);
   } 

解决方案 »

  1.   

    hse.getSession().getAttribute("SysUserID")这样取出来的值是 null 
      

  2.   

    给你一段代码,这段代码是监听session,记录当前在线人数,实现的是HttpSessionAttributeListener接口,取得jsp页面session中存入的ip.import javax.servlet.*;
    import javax.servlet.http.*;
    import com.hmkt.javabean.*;public class SessionCount implements HttpSessionAttributeListener
    {  private static int activeSessions = 0;public void attributeAdded(HttpSessionBindingEvent se)
      {
        if("ip".equals(se.getName()))
        {
          String ip = (String)se.getValue();
          //System.out.println(ip + "******");
          activeSessions++;
          }
    }public void attributeRemoved(HttpSessionBindingEvent se)
      {
    if(activeSessions > 0)
    activeSessions--;
    }public void attributeReplaced(HttpSessionBindingEvent se){}public static int getActiveSessions() {
    return activeSessions;
    }
    }
      

  3.   

    第一个session是针对某一个用户的session的
    而监听器里面得到的是刚刚创建的session,所以是不一样的
      

  4.   

    to : jFresH_MaN(The answer is ......) (那怎么样才能确定是哪一个用户呢?好比说,我统计一个用户的在线时间
      

  5.   

    简单啊!
    监听session实现一个接口HttpSessionListener 
    public class OnlineCounter implements HttpSessionListener 
    {
       public void sessionCreated(HttpSessionEvent hse)       
       { 
    刚刚创建一个session的时候 
             session.setAttibute("startTime",new Date());
       } 
       
       public void sessionDestroyed(HttpSessionEvent h)             
       {   
      
       } 
    }
    用户退出的时候
    session.getAttibute("startTime");
    Date current=new Date();
    //减一下就行了
      

  6.   

    to : jFresH_MaN(The answer is ......) 获取时间
    public class OnlineCounter implements HttpSessionListener 
    {   public void sessionCreated(HttpSessionEvent hse)       
       { 
        Date pobjDate = new Date(); 
        startTime = pobjDate.getTime();
       } 
       
       public void sessionDestroyed(HttpSessionEvent h)             
       {   
       Date pobjDate = new Date();
       endTime = pobjDate.getTime();    
       } 
       
       public static String getOnline()                  
       {
            long margin = (endTime-startTime)/(1000*60);   
            return margin;  
       }
    }
    但我要把这个时间,放入到数据库中,每次登录的时间我都要记下来
    但我怎么样确定是哪一个用户的登录时间呢?希望能指点一二?(分数不够可以再加)
      

  7.   

    to : jFresH_MaN(The answer is ......) 能详谈一下吗?
    我的QQ 275829337  MSN [email protected]我下个月要交了,希望能得到你的帮助!!
    谢谢!
      

  8.   

    可以的
    我的意思是这样
    用户登陆的同时,你把时间记下来
    注意::不在这个接口里面操作
    session.setAttibute("username","xxx");
    session.setAttrbite("startTime",new Date);在接口里面的sessionDestroyed()方法里面
    对于每一个session,
    String name=h.getSession.getAttribute("userName");
    Date start=(Date)h.getSession.getAttribute("startTime");
    date current=new Date();
    .....//这里就可以根据用户名写入数据库了
      

  9.   

    to : jFresH_MaN(The answer is ......)   谢谢你,我试一下!
      

  10.   

    就如jFresH_MaN(The answer is ......) 说的。
    在session产生的时候就要把用户信息写进session里面,这样才能在以后得到session对应的用户吧。
      

  11.   

    jFresH_MaN的好像有問題,當多個用戶使用時都調用session.setAttrbite("startTime",new Date);
    不會覆蓋startTime的值嗎,哈哈.一個用戶是沒有問題的,多個用戶有問題了.
      

  12.   

    这个问题如果好解决,可以用 ID+startTime 来解决
      

  13.   

    看来你还没有看懂我的代码
    session.setAttrbite("startTime",new Date);是针对某一个用户的,每一个用户都是不一样的啊在sessionDestroyed()方法里面
    session.getAttribute("startTime");是针对超时的用户
    我先取出name,然后根据name把相应的时间写入数据库啊