是向服务器发送
问题描述:
HttpSession session=requestObj.getSession();
ArrayList<String> items=(ArrayList<String>)session.getAttribute("itemlist");
items.add(newitem);
在这段代码中的会话数据的时候,为什么不,我需要设置属性是向服务器发送
的setAttribute( “ITEMLIST”,项目)
回会议对象事件虽然我更新了这个会话中的数据。 据我所知,会话数据存储在服务器中。那么,当这些数据被发送到服务器?
答
你的代码是用Java编写的,所以我猜它已经在服务器上运行了?
如果您只有一个服务器进程,那么您直接修改相同的内存中引用,该引用已存储在服务器会话中,因此您将自动查看更改。
但是,您应该在您修改状态时实际调用setAttribute
。如果您正在群集中运行,或者正在运行可能运行应用的多个副本的Google App Engine等云环境,则会使用此调用将更改传播到其他进程。
答
你不必做---- setAttribute(“itemlist”,items)---因为你有一个itemlist的引用,你已经存储在items中。
ArrayList<String> items=(ArrayList<String>)session.getAttribute("itemlist");
因此,对“items”所做的任何更改都将显示在“itemlist”属性中。
提交表单时将数据发送到服务器。可以通过单击提交按钮来提交表单。