2013-11-15 38 views
-1

我有一個問題,從Servlet傳遞一個ArrayList到servlet。Servlet ArrayList

第一個servlet

HttpSession session = request.getSession(); 
ArrayList users = new ArrayList();  
… 
    request.setAttribute("list", utenti); 
    RequestDispatcher rd = request.getRequestDispatcher("/secondServlet"); 
    rd.forward(request, response); 
    return; 

第二個servlet

HttpSession session = request.getSession(); 
    ArrayList users = (ArrayList) session.getAttribute("list");  

如果我現在使用迭代器來讀取單個元素我已經爲導致我的ArrayList爲空。 我不明白爲什麼我不能通過這個。

坦克

+4

request.setAttribute()/ session.getAttribute()。猜猜什麼是錯的。 – Kayaman

回答

3

您試圖將該值設置爲請求並嘗試從會話讀取。

要獲取列表,請從請求中讀取。

或者,如果您需要完整用戶會話的列表,請設置爲會話。

+0

It works 非常感謝 – user2982520

0

添加到亞都的答案,

做程序到接口。

避免

ArrayList users = new ArrayList(); 

List users = new ArrayList(); 

更好

List<String> users = new ArrayList<String>(); 
-1

在第二個servlet休假請求的會話的參考,只是使用 這一點: -

ArrayList users = (ArrayList) request.getAttribute("list"); 
0

在FIRSTSERVLET嘗試會話,而不是請求。

session.setAttribute("list", utenti); 

RequestDispatcher rd = request.getRequestDispatcher("/secondServlet"); 
rd.forward(request, response); 
return; 
相關問題