可能和session的设计有关,session在某些浏览器上就会丢值,你用cookie或者数据库直接读取试试

解决方案 »

  1.   

    是 getAttribute("id") 的值为 null?
    传递变量最好通过页面传送,不要通过 session 传递
      

  2.   

    session是服务器端的东西,跟客户机有什么关系?
    检查一下你的程序,是否正确存入了数据。
      

  3.   

    楼上的说错了,session不是服务器的东西,它也是象cookie一样,写在客户端的,你试试把客户端的cookie禁用了,看看还能不能用session?
    楼主首先保证程序有没有错,如果没有再看看客户端的cookie是不是关了.
      

  4.   

    我用的是:window.showModalDialog('wzgl/scxx/update_Schqxx.jsp?id=<%=obj[2]%>
    本来是想通过参数传递的,但是中文传不了呀!
      

  5.   

    session的信息是保存在服务器上的,而session有一个关键随机字sessionid是保存在客户端的cookie中的。这样用户每次访问都提交sessionid,从服务器上取值。
    所以和客户端有关系。
      

  6.   

    中文怎么会传不了呢?只不过页面接收的时候要进行编码转换。
    另外,我认为Session和cookie是有关系的,但是是两码事。
    Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一SessionId提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。
    可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串。Cookie是客户端的存储空间,由浏览器来维持。
    Cookie和Session使用了不同的存储空间,因此可以互不干扰。
      

  7.   

    楼主的问题,应该是Cookie被禁用了。
      

  8.   

    “楼主的问题,应该是Cookie被禁用了。”也可能是访问级别设置地过于安全吧.
      

  9.   

    我发现用了window.showModalDialog后,Session的ID就变啦!如果用open就不变,唉,用open又不能实时刷新浏览器,郁闷呀!
      

  10.   

    你试试String id= sqlRst.getString("ID");
    System.out.println("id="+id);
    session.setAttribute("id",id);
    看看打印的值是什么,再看看session.getAttribute("id")读取的值是否和上面打印的值相同
      

  11.   

    中文也是可以传的,不过要把request拿下来的Ascii转换成中文字符串
     ByteToCharConverter toChar = ByteToCharConverter.getConverter("GB2312");
                return new String(toChar.convertAll(dest));
      

  12.   

    你可能在bean里的connection的链接问题
    用session是可以传对象的
      

  13.   

    cookie被禁用了,会在URL后面自动跟上参数?jsessionid=xxxxx的。应该还是会取到session的。
      

  14.   

    楼上的说的对,cookie只是session的一种实现方式,除了这个,还可以用URL重写的方式实现。如果浏览器支持Cookie,多数服务器就会使用cookie,但是当浏览器不支持或明确禁用cookie时就自动改用URL重写。只是一般来说程序员不必关心这些细节而已。