想知道维护相同用户 session 的多个服务器如何处理请求。
例如:我们登录IRCTC并尝试预订车票。
在付款期间,IRCTC列出了带有单选按钮的多个银行选项,用于在线交易。假设我决定使用CITI银行进行交易,当我单击CITI Bank单选按钮时,我将重定向到CITI Bank网站交易页面,即您会看到URL从IRCTC网站切换到CITI Bank URL。这意味着我已经完全退出IRCTC并转至CITI BANK网站。现在,当我完成付款交易后,我会从CITI银行网站切换回IRCTC网站,而无需结束用户 session ,即当我在完成交易后从CITI银行URL切换回IRCTC时,用户 session 保持登录状态状态。
我想知道这是如何工作的。
即如何将服务器(从CITI银行切换到IRCTC)
我正在使用Struts框架。请在这方面为我提供帮助,并通过一些示例将其实现。
假设IRCTC使用struts(Jsp/Servlets),它的struts组件将负责将IRCTC的详细信息发送到花旗银行,并从CITI bank接收详细信息到IRCTC。是否可以使用Requestdispacter.sendRedirect()或其他方式?
谢谢,
最佳答案
有一种叫做session replication的东西。它在群集中使用,以使所有群集节点都使用相同的 session 信息。如果您感到好奇,请阅读链接的站点或其他资源,了解 session 复制的工作方式。
但是系统不需要共享整个 session 对象。在您的情况下,您似乎要离开一台服务器,然后再返回,而无需进行任何特殊的 session 处理。 session 从未结束过。就像您要登录到自己喜欢的Web邮件站点一样,然后转到另一个完全不同的页面并返回到您的Web邮件站点。 session 仍然在那里。您仍在登录。
因此,IRCTC站点可能会将一些信息传递给CITI银行站点,这是CITI处理 token 和 token (在最简单的情况下只是一个数字)所需的信息。 CITI bank完成后,它将使用结果代码和 token 调用IRCTC服务器。使用 token ,IRCTC服务器可以将结果代码与您的 session 相关联。然后,CITI银行将您的浏览器重定向到IRCTC页面。那里的服务器具有更新的 session ,可以在您的订购过程中向您显示下一页。