我想了解为什么会这样。
我正在使用Tomcat 7和java。
我创建了一个jsp页面,它创建了一个session属性,其中包含一个HashMap和一个从会话中检索HashMap的servlet。
我不明白为什么如果servlet从HashMap中删除一个项但没有执行setAttribute函数,jsp会检索session属性,现在HashMap中只有一个项。
这是我的例子:
JSP:
Map<Integer, String> testMap = new HashMap<Integer, String>();
testMap.put(1, "Apple");
testMap.put(2, "Orange");
request.setAttribute("testMap", testMap);
System.out.println("testMap count: " + testMap.size()); // => returns 2
的Servlet
Map<Integer, String> testMap = new HashMap<Integer, String>();
testMap = (Map<Integer, String>)session.getAttribute("testMap");
testMap.remove(1);
此时,我没有在servlet中使用setAttribute(“testMap”,testMap),但是当我的jsp在会话中访问这个testMap时,计数是1 ???
请帮助我理解原因。
由于