3

我编写了一个购物车应用程序,其中一个购物车对象存储在 http 会话中。在每个请求中,我都会返回一个不同的对象实例。这是预期的行为吗?

如果我修改了我的购物车对象,我是否需要每次都将它存储在会话中(此时我的更改丢失了,因为我没有这样做)?

在开发中工作正常,但不是生活。这是因为 GAE 的分布式架构还是我做错了什么?

我真的希望你能帮助或证实我对此的想法。提前致谢。

克里斯

ps 我正在使用struts2,但不知道这是否可能是一个问题

4

1 回答 1

2

是的,由于会话不一定存储在内存中,您的会话值将是副本,而不是对相同对象的引用。

来自GAE 文档

因为 App Engine 将会话数据存储在数据存储区和内存缓存中,所以存储在会话中的所有值都必须实现 java.io.Serializable 接口。

换句话说,GAE 将根据需要序列化/反序列化您的会话,生成副本。

于 2013-01-01T14:31:12.067 回答