我想要的只是在多次调用此servlet时实例化list的对象。请不要使用static关键字,因为这里不允许这样做。
List<Cart> list=new ArrayList<Cart>();
list.add(new Cart(name, cost));
HttpSession s=req.getSession();
s.setAttribute("list",list);
out.println("item successfully added to cart");
out.println("\n<a href=\'viewserv\'>view cart</a>");
out.println("\n<a href=\'item\'>view item</a>");
答案 0 :(得分:0)
当你将它存储到会话中时,你需要检查它已经在会话中的天气。
HttpSession s=req.getSession();
if(s.getAttribute("list") !=null){
sessionList =new ArrayList<Cart>();/create new
}else {
sessionList = (List)s.getAttribute("list");
sessionList.add(....
}
答案 1 :(得分:0)
我猜你想要在这个servlet服务的所有HTTP请求中保持相同的对象。
只需将此对象作为servlet的实例变量,并在servlet的init方法中实例化它。
答案 2 :(得分:0)
我想要的是在多次调用时只实例化一次列表对象 servlet
您应初始化List
init
Servlet
方法{/ 1}}。
List<Cart> list=null;
@Override
public void init() throws ServletException {//This method will call only once
list=Collections.syncronizedList(new ArrayList<Cart>());
}
请注意,上述声明必须关注同步。