【问题标题】:How to pass an arraylist from one servlet to another servlet如何将数组列表从一个 servlet 传递到另一个 servlet
【发布时间】:2017-10-29 15:07:12
【问题描述】:

我有两个 Servlet,在第一个 servlet 中,我创建了一个数组列表并将其发送到 jsp 页面以在 UI 上显示,现在我想将相同的数组列表从第一个 servlet 传递给另一个 servlet。下面是第一个 serlet 的 Arraylist 的代码。 如何在 post 方法中将其传递给另一个 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));
                        }

【问题讨论】:

    标签: java jsp servlets arraylist


    【解决方案1】:

    您可以使用setAttribute()

    request.setAttribute("mails", mails);
    

    检索:

    ArrayList<String> list=(ArrayList<List>) request.getAttribute("mails"); 
    

    【讨论】:

      【解决方案2】:

      将其设置为会话属性,您可以在应用程序中的任何位置访问它,如下所示。

      request.getSession().setAttribute("name",mails);
      

      你可以在第二个 servlet 中访问它

      ArrayList<String> list=(ArrayList<List>)request.getSession().getAttribute("name");
      

      【讨论】:

      • request.getSession().getAttribute("name"); 返回一个对象。你需要在使用它之前进行类型转换。
      • 任何好的 IDE 都会告诉你在访问时进行类型转换,觉得不用提了
      • 在 servlet 中获取名称后,我想在同一个 doPost 方法中将其传递给 for 循环 -> for( senderInput : name ) bt 在这里它不起作用。给出错误建议制作名称的局部变量..请建议
      • It(name) 应该在 " " 内而不是直接变量。
      • 相应地进行了更改@SanketMakani
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 2020-01-10
      • 2014-02-04
      • 1970-01-01
      • 2016-09-23
      相关资源
      最近更新 更多