保持Vector的内容完好无损

时间:2012-11-21 08:38:04

标签: java servlets

在我的网站上,下面的servlet会被调用次数,每次都需要在vector中存储一个值。但是,一旦servlet执行完成,我不希望向量丢失其先前的内容。喜欢购物车。

public void putValues(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException
 {
Vector<Object> vector = new Vector<Object>();
 vector.add(request.getParameter("UID"));
 }

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

每次调用方法时都不要创建新的Vector,请使用实例变量。

private Vector<Object> vector = new Vector<Object>();    

public void putValues(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException
     {
     vector.add(request.getParameter("UID"));
     }

答案 1 :(得分:1)

每次调用该方法时都会创建一个新的Vector实例。

这种情况通常是通过将这些对象保留在HttpSession对象中来处理的。

如果您确实需要ArrayList的同步版本,我还建议您使用Collections.synchronizedList()代替Vector或List

答案 2 :(得分:1)

你显然应该使用HttpSession。

doXXX(...){
    Object data = request.getSession().getAttribute("data");
    if(data==null){
       request.getSession().setAttribute("data", new Vector());
    }

然后,每次调用servlet时,使用:

((Vector)(request.getSession().getAttribute("data"))).add(request.getParameter("UID"))

答案 3 :(得分:0)

您可以将内容存储在临时文本文件中