在我的网站上,下面的servlet会被调用次数,每次都需要在vector中存储一个值。但是,一旦servlet执行完成,我不希望向量丢失其先前的内容。喜欢购物车。
public void putValues(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Vector<Object> vector = new Vector<Object>();
vector.add(request.getParameter("UID"));
}
有什么想法吗?
答案 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)
您可以将内容存储在临时文本文件中