【发布时间】:2012-06-27 09:38:41
【问题描述】:
我们正在开发旅行应用程序。通过这个航班,酒店,巴士票将被预订。它是基于产品的应用程序。几乎我们有 25 个客户(3 个客户正在使用,仍在开发中)。我们正在为所有客户维护一台服务器。一个服务器(应用程序)多个客户端是我的应用程序中的巨大成就。但问题是每个客户都有不同的支付网关用于他们的汇款,如 EBS、HDFC、ICICI、ATOM 等。我们必须使用 sendRedriect() 来调用他们的支付网关系统。
response.sendRedirect("hdfc link....");
在重定向之前,我们在会话范围内存储了近 7-9 个对象,每个对象将包含近 35-50 个变量。 支付网关流程完成后,将重定向到我的应用程序。当我尝试获取会话时
request.getSession();
它正在创建新会话一段时间(10 次中有 5 次)。
存储在请求范围内的变量对我来说至关重要。我无法将其存储到数据库中,因为它们非常庞大。对于每个请求,我们都会生成长度为 25 的随机数。使用该随机数存储会话变量。
session.setAttribute("flightStatus"+randomNumber, flightstatus object);
所以请建议如何取回上一个会话,以及为什么上一个会话无效并且新会话正在创建。
【问题讨论】:
-
如果没有更多信息,很难提供帮助。会话创建为新的那些用例是什么?是否有任何会话超时等?
-
@UmeshAwasthi 会话没有超时。
-
您是否明确地进行任何 url 重写或将会话存储在 cookie 中的任何位置?以及在什么场景下新创建的会话?
-
无法追踪场景...
-
您可以将它存储在会话/请求中,但它太大而无法存储在数据库中?这没有任何意义。除此之外,如果您在同一台服务器上,会话不会超时,您在 HTTP 和 HTTPS 之间共享会话,除了您之外的任何人都很难弄清楚会话被丢弃的原因- -不应该。
标签: jsp session jakarta-ee servlets struts2