你俩次取到的ServletContext 不是一个, 你不是每次都创建一个,这个东西不用每次都创建的 。

解决方案 »

  1.   

    ServletContext那个位置出错,不停的new了,,,
      

  2.   


    我定义的ServletContext 是static,
    我没找到一步每次都创建,可否贴代码明示?我自己未找到
      

  3.   


    可否贴下代码,告知下是那个位置不停的new
      

  4.   

    HashMap<String,Object> record = (HashMap<String,Object>)ss.getAttribute("userNameRecord"); 
    换成:
    HashMap<String,Object> record = (HashMap<String,Object>)sc.getAttribute("userNameRecord"); 
    试试呢,再检查下userNameRecord大小写、空格啥的。
      

  5.   

    本来你put进去了,你getServletContext时会又set一个new的对象
    servletContext.setAttribute("userNameRecord", new HashMap<String,Object>());
      

  6.   

    明白了!!!
    servletContext.setAttribute("userNameRecord", new HashMap<String,Object>());
    要放在if( null == servletContext )里面,
    即if( null == servletContext ){
                CreateServletContext createServletContext = new CreateServletContext();
                servletContext
                 = createServletContext.getServletContext();
                servletContext.setAttribute("userNameRecord", new HashMap<String,Object>());
            }
    谢了!!!
      

  7.   

    放在request里面不是更好么。。
      

  8.   


    不好,我这个servletContext.setAttribute("userNameRecord", new HashMap<String,Object>());
    定义了一个userNameRecord,专门记录的,
    记录,自然是全局的了。
      

  9.   


    问题找到了,是GetServletContext.getServletContext()这里,每次调用,都重新setAttribute()一个新的HashMap了,这是我的失误