2013-02-25 138 views
0
HttpSession session=requestObj.getSession(); 
ArrayList<String> items=(ArrayList<String>)session.getAttribute("itemlist"); 
items.add(newitem); 

在这段代码中的会话数据的时候,为什么不,我需要设置属性是向服务器发送

的setAttribute( “ITEMLIST”,项目)

回会议对象事件虽然我更新了这个会话中的数据。 据我所知,会话数据存储在服务器中。那么,当这些数据被发送到服务器?

回答

1

你的代码是用Java编写的,所以我猜它已经在服务器上运行了?

如果您只有一个服务器进程,那么您直接修改相同的内存中引用,该引用已存储在服务器会话中,因此您将自动查看更改。

但是,您应该在您修改状态时实际调用setAttribute。如果您正在群集中运行,或者正在运行可能运行应用的多个副本的Google App Engine等云环境,则会使用此调用将更改传播到其他进程。

2

你不必做---- setAttribute(“itemlist”,items)---因为你有一个itemlist的引用,你已经存储在items中。

ArrayList<String> items=(ArrayList<String>)session.getAttribute("itemlist"); 

因此,对“items”所做的任何更改都将显示在“itemlist”属性中。

提交表单时将数据发送到服务器。可以通过单击提交按钮来提交表单。