servlet中的ArrayList具有先前的值

时间:2014-06-12 08:46:23

标签: servlets

我在doPost方法中声明了一个arraylist,并将其传递给另一个servlet页面。问题是arraylist包含每个新请求的旧值。

我在这里提供代码

public void doPost(HttpServletRequest reqst,HttpServletResponse res)
{ 

   ArrayList<String> tabledata=new ArrayList<String>(); 
   Calculation(tabledata); //Which adds some strings to the tabledata 
   HttpSession hs=reqst.getSession(); 
   hs.setAttribute("tabledata",tabledata); 
   res.sendRedirect("nextpage")// redirecting to another servlet page 
} 

我希望arraylist只包含当前的请求数据。但它也存储了所有先前请求的数据。

1 个答案:

答案 0 :(得分:0)

您可以将此数据存储在请求而非会话中,然后转发而不是重定向。

public void doPost(HttpServletRequest reqst,HttpServletResponse res)
{ 
    ArrayList<String> tabledata=new ArrayList<String>(); 
    Calculation(tabledata); //Which adds some strings to the tabledata 
    reqst.setAttribute("tabledata",tabledata); 
    request.getServletContext().getRequestDispatcher("nextpage").forward(request, response);
}