我正在编写一个包含多个 jsp 文件的 Web 应用程序, session 超时为 20 分钟。
但是在特定的 jsp 中,当我调用一个 Action 时,我需要将 session 超时设置得更大。我用:
request.getSession().setMaxInactiveInterval(1800);
然后一个 Action 结束我将 session 超时重置为其原始值:
request.getSession().setMaxInactiveInterval(600);
但是当运行应用程序并调用操作时,它结束 session 关闭,因为我设置的时间已经过去。
我想知道的是有没有办法不知道我什么时候退出jsp?不关闭浏览器或关闭选项卡窗口。比如我调用另一个jsp?。
或者是否有另一种方法来重置 session 超时,以便在操作结束时 session 不会关闭?
忘记了。 该操作在 for bucle 内,如果条件为真,则调用该操作。我在调用操作之前放置更改 session 超时的代码,并在操作结束时重置时间。
for(int i = 0; i < totalreg; i++) {
if (condition) {
request.getSession().setMaxInactiveInterval(1800);
process();
request.getSession().setMaxInactiveInterval(600);
}
}
谢谢。
最佳答案
只需一个不可见/非常小的 iframe,您可以在其中连续重新加载一些随机页面。或者,您可以为此目的使用 AJAX。这样,只要此页面打开,您的 session 就永远不会超时。
这也是一种异步显示操作进度的好方法。
关于java - JSP - 知道我何时退出 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295568/