SLM*_*SLM 5 java session servlets
我正在开发一个系统来处理客户商家系统收到的金融交易,它是我们从供应商处购买的现有系统的替代品.客户端界面应从我们的系统调用用户身份验证和事务处理屏幕.
系统功能如下,
一个响应被接收客户端应该从会话中的值验证事务数据.
系统概述可描述如下,
我的问题是,一旦我们响应客户端,客户端就无法保留会话.但是我们从供应商那里购买的系统可以实现相同的功能(我们没有这个的源代码来分析内部编码结构).我希望我们对客户做出回应的方式有问题.
我怎样才能克服这个问题?
我们使用的是Java 1.4.2,Websphere应用服务器
有许多事情可以使会话消失.我建议跟踪它们并验证是否有任何问题.如果您了解会话的工作方式,这将更容易做到.
会话已超时.这通常默认为30分钟.这是可以配置的,您可以<session-timeout>
在web.xml
其中指定超时(以分钟为单位).您可以HttpSessionListener
使用记录器实现跟踪会话创建和销毁.
会话被强制失效.这在代码调用时发生HttpSession#invalidate()
.这也是可跟踪的HttpSessionListener
.
会话cookie已经消失.会话由cookie支持.如果已创建会话,则服务器将添加Set-Cookie
具有会话ID 的标头.客户端应该在Cookie
标头中指定的(上下文)路径上的所有后续请求中将相同的cookie发送回头Set-Cookie
.这可以在浏览器内置Web开发人员工具集的HTTP流量监视器("网络"选项卡)中跟踪(按Chrome/Firefox23 +/IE9 +中的F12).可以在同一个cookie域中访问所有Web应用程序的Cookie.此外,如果ServletC2
在不同的webapp上下文上运行ServletC1
,那么它将不会使用相同的会话.此外,如果"服务器"web应用程序在同一个域上运行,那么它理论上可以清除"客户端"Web应用程序的所有cookie.
客户端不支持cookie.精心设计的Web应用程序使用URL重写jsessionid
来跟踪同一Web应用程序上的请求之间的无Cookie客户端.但是,当重定向回第一个Web应用程序时,第二个Web应用程序必须执行相同的操作.