2

我必须为大学做一个项目,我遇到了一些问题,如果你们中的任何人能帮助我,我将非常感激。

该项目是一个二手产品商店,到目前为止,我们必须制作一个 servlet 用于将产品插入列表中,该列表稍后将保存在通用用户会话中(我们不使用任何类型的数据库,仅使用用户会话)。没关系,但现在我必须执行另一个在此列表中搜索的 servlet,但我在从另一个 servlet 检索列表时遇到问题。

将产品保存在用户会话属性中的 Servlet 代码。

listaProds.add(prod);
request.getSession().setAttribute("listaProdutos", listaProds);

这是我尝试从另一个 servlet 检索列表的代码

listaProds =(ArrayList<Produto>) request.getSession().getAttribute("listaProdutos");

问题是,我在第二个 servlet 中只有一个空指针,我不知道下一步该做什么......

附加信息:我正在使用 netbeans,两个 servlet 都在同一个包中,两个 servlet 都是从两个不同的 .jsp 页面“调用”的。

如果有人可以帮助我,那就太好了,如果您需要任何其他信息,请询问,我会提供。

提前致谢!!

4

1 回答 1

2

您正在获取 NPE,因为您正在检索对象,而您应该尝试

listaProds =(ArrayList<Produto>) request.getSession().getAttribute("listaProdutos");

应该按预期工作。

从java文档, HttpRequest#getAttribute

java.lang.Object getAttribute(java.lang.String name) 将命名属性的值作为对象返回,如果不存在给定名称的属性,则返回 null。

于 2014-10-03T14:29:38.007 回答