java - 以编程方式在没有浏览器的情况下保持 HTTP session Activity

标签 java http session jakarta-ee

对于我们的一个要求,我正在使用 HTTP 协议(protocol)在两台服务器之间进行通信。交互运行时间很长,用户可能在相当长的时间间隔内不会与其他站点交互。

当他们来到页面时,登录到远程站点。每次用户尝试与远程站点交互时,我都会在内部进行 HTTP 调用(基于 sessionId 完成身份验证)。

我想知道是否有办法同时刷新 session 并确保它不会过期。

根据我有限的理解,浏览器通过在 header 或 cookie 中传递 keep-alive 来处理这个问题(我不完全理解)。任何人都可以在 Java 中建议一种编程方式来实现保持 Activity 状态

最佳答案

1.

 <session-config>
         <session-timeout>-1</session-timeout>
 </session-config>

只需将这段代码粘贴到您的部署描述符 (DD) 中即可。
如果你想让你的 session 在特定的时间内保持 Activity 状态,请将 -1 替换为任何正数值。
此处指定的时间以分钟为单位。

2.

如果您想更改特定 session 实例的 session 超时值而不影响应用程序中任何其他 session 的超时长度:

session.setMaxInactiveInterval(30*60);


********* *************
注意:

1.在DD中,指定的时间以分钟为单位。
2.如果您以编程方式进行,指定的时间以为单位。

希望这有帮助:)

关于java - 以编程方式在没有浏览器的情况下保持 HTTP session Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642659/

相关文章:

java - 如何在 Android 中安排通知

Java Apache Poi 编写 Excel

angular - HTTP 心跳以避免长时间运行的 http 调用的连接断开

php - 在 IFRAME 中传递 Session 信息

session - 在 Google Analytics 中,如果每个 session 只能触发一次,为什么唯一页面浏览量高于 session ?

java - GAE Endpoints (Java) with objectify - 如何为部分数据建模(对于客户端)?

java - when() 是如何工作的?

http - Angular 2 RC6 测试 HTTP.get 抛出错误 get() 方法不存在

java - 将用户名传递给 HttpGet 请求

php - 为什么我不能在我的 php 脚本中使用 session_start()?它说标题已经发送