gpt4 book ai didi

jsf - 在 JSF 中的长时间处理期间防止 session 超时

转载 作者:行者123 更新时间:2023-12-04 11:15:42 25 4
gpt4 key购买 nike

我一直在研究 JSF 应用程序。在一个地方,我必须在托管 bean 中调用一个操作。在处理完成之前,该操作实际上会处理数百条记录和 session 超时。

尽管所有记录都被成功处理, session 过期并且用户被发送到登录页面。

我试过添加

session.setMaxInactiveInterval(0);

在处理记录之前没有任何影响。

如何在这样的过程中防止 session 超时。

最佳答案

只要最终用户在 webbrowser 中打开页面,就引入 ajaxical 轮询以保持 session 处于事件状态。这是一个启动示例,在 jQuery 的帮助下.

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
setInterval(function() {
$.get('poll');
}, ${(pageContext.session.maxInactiveInterval - 10) * 1000});
});
</script>

这里 ${pageContext.session.maxInactiveInterval} 返回 session 尚未存活的剩余秒数(并被扣除 10 秒 - 只是为了准时进行轮询 - 并转换为毫秒,以便它适合 setInterval() 预期)。

$.get('poll') 应该调用一个映射到 url-pattern 上的 servlet的 /poll并在 doGet() 中基本上包含以下行方法。
request.getSession(); // Keep session alive.

就是这样。

关于jsf - 在 JSF 中的长时间处理期间防止 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4525171/

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