如何将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"); 
+1

'request.getSession()的getAttribute( “名称”);'返回一个对象。在使用它之前,您需要进行类型转换。 –

+0

任何好的IDE会告诉你在访问时的类型转换,认为它是不用提的 –

+0

在servlet中创建geting的名字之后我想把它传递给for循环在同一个doPost方法 - > for(senderInput:name)bt在这里它不工作。给出错误提示使局部变量的名称..请建议 – Dip