gpt4 book ai didi

java - Java EE 应用程序的 session 处理

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:19 25 4
gpt4 key购买 nike

我正在开发一个系统来处理客户商家系统收到的金融交易,它是我们从供应商处购买的现有系统的替代品。客户端界面应从我们的系统调用用户身份验证和交易处理屏幕。

系统功能如下,

  1. 从商家网站接收输入参数
  2. 验证它
  3. 验证用户(用户已在我们的系统中注册,我们应该调用我们的登录屏幕)
  4. 处理交易
  5. 返回状态响应给商户

收到响应后,客户端应根据驻留在 session 中的值验证交易数据。

系统概况可以描述如下,

enter image description here

( click here for full size image )

我的问题是一旦我们响应客户端,客户端就无法保留 session 。但是我们从供应商那里购买的系统可以实现相同的功能(我们没有源代码来分析内部编码结构)。我希望我们回应客户的方式有问题。

我怎样才能克服这个问题?

我们正在使用 Java 1.4.2,Websphere 应用服务器

最佳答案

有很多东西可以使 session 消失。我建议跟踪它们并验证是否一切正常。如果你 understand 这会更容易做到 session 如何工作。

  • session 已超时。这通常默认为 30 分钟。这是可配置的 <session-timeout>web.xml您可以在其中以分钟为单位指定超时。您可以实现 HttpSessionListener 使用记录器跟踪 session 创建和销毁。

  • session 已被强制无效。当代码调用 HttpSession#invalidate() 时会发生这种情况.这可以用 HttpSessionListener 追踪

  • session cookie 已消失。 session 由 cookie 支持。如果创建了一个 session ,服务器将添加一个 Set-Cookie带有 session ID 的 header 。客户端应发送回与 Cookie 相同的 cookie Set-Cookie 中指定的(上下文)路径上的所有后续请求中的 header header 。这可以在浏览器内置 Web 开发人员工具集(在 Chrome/Firefox23+/IE9+ 中按 F12)的 HTTP 流量监视器(“网络”选项卡)中进行跟踪。同一 cookie 域中的所有 webapp 都可以访问 cookie。另外,如果 ServletC2在与 ServletC1 不同的 webapp 上下文中运行,那么它就不会使用相同的 session 。此外,如果“服务器”网络应用程序在同一域上运行,那么理论上它可以清除“客户端”网络应用程序的所有 cookie。

  • 客户端不支持 cookie。一个设计良好的网络应用程序使用 URL 重写 jsessionid跟踪同一网络应用程序请求之间的无 cookie 客户端。但是当重定向回第一个 Web 应用程序时,第二个 Web 应用程序必须执行相同的操作。

关于java - Java EE 应用程序的 session 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com