如何使用ajax请求重置ADF会话超时?

时间:2015-03-05 17:51:12

标签: ajax session java-ee oracle11g oracle-adf

我有一个Oracle ADF应用程序,会话超时为10分钟。在8分钟标记处,将显示一个弹出窗口,要求用户单击“确定”继续。对于这种情况,我想通过javascript / ajax触发相同的功能。我使用了fiddler并检查了发出的http请求。它将Adf-Rich-Message标头设置为true,并使用Date.now()中的当前时间添加_afTS查询字符串。无论我做什么,除了在弹出窗口单击“确定”之外,我无法重置会话过期。我对ADF知之甚少,但我很精通javascript / jQuery。我还将contentType设置为application / x-www-form-urlencoded。我在网上看到一个字段呈现给会话到期时间的页面。我找不到那个。我的下一个尝试是逐步完成当用户在警告弹出窗口中单击“确定”并尝试模仿该行为时调用的ADF javascript。有谁碰巧知道怎么做?也许这是错误的做法?我知道会话超时是在web.xml中设置的,可以在运行时设置而不是部署时间吗?如果存在cookie或其他内容,请更改该值,否则默认为10分钟。在这一点上,我很困难并且愿意接受建议。

2 个答案:

答案 0 :(得分:0)

您要做的事情有点不正统,但我欢迎经验丰富的开发人员带入ADF知识库的任何想法。 因此,您可以通过向Authentication Servlet发出Ajax请求来使HTTP会话无效:/ adfAuthentication?logout = true

答案 1 :(得分:0)

您可以使用af:poll组件进行空闲表单轮询,并在其后面使用一些服务器端逻辑来实现自定义会话超时逻辑。

你不应该对抗框架,而应该学习如何使用它。