Java 与会话'混淆;s getAttribute和setAttribute方法

Java 与会话'混淆;s getAttribute和setAttribute方法,java,servlets,Java,Servlets,我使用session.set/getAttribute()将我的HashMap传递给另一个servlet。在我的下一个servlet中,我将向我的HashMap添加一个值,但是当我搜索该值时,它无法读取。为什么它不起作用 我的设定如下: session.setAttribute("itemList", itemList); HashMap itemList = (HashMap)session.getAttribute("itemList"); itemList.put(stockNo, it

我使用
session.set/getAttribute()
将我的
HashMap
传递给另一个servlet。在我的下一个servlet中,我将向我的
HashMap
添加一个值,但是当我搜索该值时,它无法读取。为什么它不起作用

我的设定如下:

session.setAttribute("itemList", itemList);
HashMap itemList = (HashMap)session.getAttribute("itemList");
itemList.put(stockNo, item);
session.setAttribute("itemList", itemList);
我现将其检索如下:

session.setAttribute("itemList", itemList);
HashMap itemList = (HashMap)session.getAttribute("itemList");
itemList.put(stockNo, item);
session.setAttribute("itemList", itemList);
这是正确的吗

session.setAttribute("itemList", itemList); //is this correct???
在上面的语句中,您刚刚将“itemList”(标识符)关联到itemList(对象)。这意味着,如果以后要引用此itemList对象,只需引用“itemList”标识符

JavaAPI是你的好朋友。您应该很容易就解决了这个问题。

session.setAttribute(“itemList”,itemList)//这是对的吗这就是你设置它的方式

HashMap itemList=(HashMap)session.getAttribute(“hashM”);--这就是您检索它的方式


在两个位置使用相同的键“itemList”

只需在AddTheEntryservlet中检查它是否提供了新会话或旧会话。请注意,第二个servlet中的setAttribute调用是不必要的。无论如何,这些更改都将反映在引用的对象中。这是Java,不是PHP或一些非OO语言。