啊呀,拼错了,应该是struts。

解决方案 »

  1.   

    想用遍历当前Session的方法来检索用户id---------合理吗?为什么不到数据库中找呢?
      

  2.   


    没有必要去检索session中用户id,
    可以直接用用户名查找session中是否存在用户id来实现。
    如下:
    String admin_name_session=new String();
    String admin_password_session=new String();
    try {
    admin_name_session=(String)session.getValue("user");
    admin_password_session=(String)session.getValue("pws");
    if(admin_name_session==null || admin_password_session ==null)
    {
    //如果没有登陆,则可以登陆。
    }
    }
    catch (Exception t) {
    out.println("Session错误:"+t);
    }
      

  3.   

    完全同意 qxjavajava(射手座 =--->新春进步)
      

  4.   

    java.util.Enumeration e = session.getAttributeNames();
    while ( e.hasMoreElements() ) {
       String sessionName = (String)e.nextElement();
    }
    这就是你的SESSIONNAME了!
      

  5.   

    把session写到动态数组里
    用for(int i=0,i<str[].length,i++){}来实现遍历
      

  6.   

    得到String的SessionName了,就可以对Session遍历了?
      

  7.   

    我想楼主的意思是想得到application当前所有创建了的session吧,我以前问过这个问题,没有人回答,看来是不行的。
      

  8.   

    利用数据库标准位来达到目的也是一种方式,但是也存在问题.如果用户意外的掉线就不能在登录了,所以建议采用数据库和listener相结合的方法.下面的方法你可以参考一下,单这个方法也不完美.
    package elms.login;import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import elms.sql.DBConnection;/*public class listener extends HttpServlet
    {

       public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException,IOException
    {
    response.setContentType("text/plain");
    HttpSession session = request.getSession();
    session.setAttribute("stuloginname",new CustomBindingListener(getServletContext()));
    session.setAttribute("stuloginname",""+Math.random());
    session.setMaxInactiveInterval(5);
    }
    }*/public class listener implements HttpSessionBindingListener
    {
    private ServletContext context;

    public listener(ServletContext context)
    {
    this.context = context;
    }

    public void valueBound(HttpSessionBindingEvent event)
    {

    }

    //=========================用户权限session过期后取消用户登录状态=============================================
    public void valueUnbound(HttpSessionBindingEvent event)
    {
    try
    {
    elms.sql.DBConnection conn = new elms.sql.DBConnection();
    //System.out.println("ok1");
    String stuloginvalue = (String)event.getName();
    //System.out.println(stuloginvalue);
    //System.out.println("ok2");
    String update_sql = "update student_info set Onlinestatus='0' where studentno='"+stuloginvalue+"'";
    conn.executeQuery(update_sql);
    conn.close();
    //System.out.println("ok3");
    }
    catch(Exception e)
    {
    //System.out.println(e.getMessage());
    }
    }
    }
    在创建session时候进行监听.
    session.setAttribute(id,listener);
    如果断线在session过期的时候就可以把标准位致回,但在可用性上有一点问题.
      

  9.   

    java.util.Enumeration e = session.getAttributeNames();
    while ( e.hasMoreElements() ) {
       String sessionName = (String)e.nextElement();
    }
      

  10.   

    xycleo()虚竹和尚() 的方法可以
      

  11.   

    有一事不清,session在什么前提下才可以用?需要用什么与其搭配?
    例如上面提到的java.util.Enumeration e = session.getAttributeNames();
    它和什么是相对应的啊?