我有一个问题要将一个ArrayList从servlet传递给servlet。
FIRST SERVLET
HttpSession session = request.getSession();
ArrayList users = new ArrayList();
…
request.setAttribute("list", utenti);
RequestDispatcher rd = request.getRequestDispatcher("/secondServlet");
rd.forward(request, response);
return;
第二个服务器
HttpSession session = request.getSession();
ArrayList users = (ArrayList) session.getAttribute("list");
如果现在我使用Iterator读取单个元素我的结果是我的ArrayList为null。 我不明白为什么我不能通过它。
罐
答案 0 :(得分:3)
您正在尝试将值设置为请求并尝试从会话中读取。
要获取列表,请从请求中读取。
或者,如果您需要完整用户会话的列表,请设置为会话。
答案 1 :(得分:0)
添加到Yadu的回答
编程到界面。
避免
ArrayList users = new ArrayList();
待办事项
List users = new ArrayList();
更好
List<String> users = new ArrayList<String>();
答案 2 :(得分:0)
在FIRSTSERVLET尝试会话而不是请求。
session.setAttribute("list", utenti);
RequestDispatcher rd = request.getRequestDispatcher("/secondServlet");
rd.forward(request, response);
return;
答案 3 :(得分:-1)
第二个servlet中的从请求中保留会话引用并使用 此: -
ArrayList users = (ArrayList) request.getAttribute("list");