如何将arraylist从一个servlet传递到另一个servlet
问题描述:
我有两个Servlet,第一个servlet我创建一个arraylist并将它压缩到jsp页面以显示在UI上,现在我想从第一个servlet传递相同的arraylist到另一个servlet。下面是第一个serlet的ArrayList的代码。 如何将它传递给anather的servlet在POST方法如何将arraylist从一个servlet传递到另一个servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String startName=request.getParameter("startName");
int noOfSenders=Integer.parseInt(request.getParameter("noOfSenders"));
String domain =request.getParameter("domain");
/*Code for List form function*/
List<String> mails=new ArrayList<String>();
for(int i=1;i<=noOfSenders;i++){
StringBuilder sb = new StringBuilder();
sb.append(startName).append(i).append(domain);
mails.add(sb.toString());
}
System.out.println("response");
response.getWriter().write(new Gson().toJson(mails));
}
答
您可以使用setAttribute()
request.setAttribute("mails", mails);
检索:
ArrayList<String> list=(ArrayList<List>) request.getAttribute("mails");
答
设置为会话属性,你可以在任何地方内访问如下所示。
request.getSession().setAttribute("name",mails);
也可以在第二个servlet访问它
ArrayList<String> list=(ArrayList<List>)request.getSession().getAttribute("name");
'request.getSession()的getAttribute( “名称”);'返回一个对象。在使用它之前,您需要进行类型转换。 –
任何好的IDE会告诉你在访问时的类型转换,认为它是不用提的 –
在servlet中创建geting的名字之后我想把它传递给for循环在同一个doPost方法 - > for(senderInput:name)bt在这里它不工作。给出错误提示使局部变量的名称..请建议 – Dip