我正在编写一个包含多个jsp文件的Web应用程序,会话超时为20分钟。
但是在一个特定的jsp中,当我调用一个动作时,我需要将会话超时设置得更大。我用:
request.getSession().setMaxInactiveInterval(1800);
然后一个动作结束我将会话超时重置为原始值,其中:
request.getSession().setMaxInactiveInterval(600);
但是当运行应用程序并调用该操作时,会关闭会话,因为我设置的时间已经过去了。
我想知道的是,当我退出jsp时,是否有一种方法不知道?没有关闭浏览器或关闭标签窗口。例如,我打电话给另一个jsp?
或者是另一种重置会话超时的方法,以便在操作结束时会话不会关闭?
我忘记了。 该动作在for bucle内部,如果条件为true,则调用该动作。我在调用操作之前将代码更改为会话超时,并重置操作结束的时间。for(int i = 0; i < totalreg; i++) {
if (condition) {
request.getSession().setMaxInactiveInterval(1800);
process();
request.getSession().setMaxInactiveInterval(600);
}
}
感谢。
答案 0 :(得分:1)
只需要一个不可见/非常小的iframe,你可以连续重新加载一些随机页面。或者,您可以将AJAX用于此目的。这样,只要此页面处于打开状态,您的会话就永远不会超时。
这也是异步显示行动进展的好方法。
答案 1 :(得分:0)
我使用onbeforeunload事件找到了我用javascript查看的内容。 我在此网站的此链接中找到了Best way to detect when user leaves a web page。