2014-10-03 77 views
2

我必须为大学做一个项目,而且我遇到了一些问题,如果你们中的任何人都可以帮助我,我会非常感激。如何从另一个servlet检索会话属性?

该项目是一个使用过的产品商店,直到现在我们必须制作一个servlet来将产品插入列表中,稍后将保存在通用用户会话中(我们没有使用任何类型的数据库,只有用户会话)。这是好的,但现在我不得不做另一个在此列表中搜索的servlet,但是我在从另一个servlet中检索列表时遇到问题。

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

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

此处,我尝试从另一个servlet检索列表中的代码

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

的事情是,我刚开了只有在第二个servlet一个空指针,我不对下一步做什么线索......

附加信息: 我使用NetBeans中, 了servlets都在同一个包, 了servlets是从两个不同的.jsp页面“叫”。

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

在此先感谢!

回答

2

你得到NPE,因为你检索对象,而你应该尝试

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

应该按预期工作。

从Java文档, HttpRequest#getAttribute

java.lang.Object中的getAttribute(java.lang.String中的名字)返回值命名属性为对象 或null如果没有 的属性给定名称存在。

+0

什么是noob我:)非常感谢! – 2014-10-03 14:41:07

+0

不客气:)。它是所有人共同的错误。考虑upvoting,如果它帮助 – 2014-10-03 14:41:55

+0

对不起,我没有upvoted早些时候,我无法。没有足够的积分来做到这一点:) – 2014-11-24 11:09:42