如何从另一个servlet中检索会话属性?

时间:2014-10-03 13:54:09

标签: jsp servlets attributes usersession

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

该项目是一个二手产品商店,到目前为止我们必须制作一个servlet,用于在一个列表中插入产品,以后将保存在一般用户会话中(我们不使用任何类型的产品) DB,只有用户会话)。没关系,但是现在我必须做另一个在这个列表中搜索的servlet,但是我在从另一个servlet中检索列表时遇到了问题。

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

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

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

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

事情是,我开始&#39;第二个servlet中只有一个空指针,我不知道下一步该怎么做......

其他信息: 我使用netbeans, 两个servlet都在同一个包中, 这两个servlet被称为&#39;来自两个不同的.jsp页面。

如果有人可以帮助我,那将会很棒,如果您需要任何其他信息,请询问并提供。

提前致谢!!

1 个答案:

答案 0 :(得分:2)

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

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

应该按预期工作。

来自java docs, HttpRequest#getAttribute

  

java.lang.Object getAttribute(java.lang.String name)返回值   作为Object的named属性,如果没有属性,则为null   给定名称存在。