2014-10-03 76 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