我在java动作类中创建了一些Map对象和一些set对象,并在下一个servlet / jsps中获取这些值。这是我正在遵循的好方法还有比这更好的方法...我将这些值存储在一个动作类中并在另一个中使用它们。我这样做是为了防止下一堂课的加载时间,也是出于一些小的原因......
SessionUtils.setNamespacedAttribute(session, "mapofAllexistingservers", null, mapofallservers);
SessionUtils.setNamespacedAttribute(session, "mapOriginal", null, mapRight);
SessionUtils.setNamespacedAttribute(session, "mapleft", null, mapLeft);
SessionUtils.setNamespacedAttribute(session, "CancelProducts", null, "Cancel");
SessionUtils.setNamespacedAttribute(session, "networkCollect", null, treeMapNetworks);
SessionUtils.setNamespacedAttribute(session, "setOfSharedServers", null, setOfSharedServers);
答案 0 :(得分:1)
这不是那么干净但是还可以。也许你可以将所有map * -attributes包装成一个新的Object(不要忘记serialize-interface)。
如果您钝化会话,则setOfsharedServers
可能会解除因为共享服务器在激活会话后不可用。
答案 1 :(得分:1)
在一般实践中,向HttpSession
实施添加大量数据基本上没问题。现在,用户级别的几KB之间的差异可以忽略不计。对于大型分布式企业应用程序,您应该开始变得更加吝啬。特别是在部署在多个应用程序服务器上的情况下,最终将支持跨服务器的高可用性群集和负载平衡。为了实现这一点,必须为某些第三方(Infinispan
和JGroups
)负责会话复制。这会多次增加会话对象大小,并增加相当严重的内存和网络开销。在这个时候,你希望你的会议很少。