首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中如何在会话到期前提醒用户?

问在Java中如何在会话到期前提醒用户?
EN

Stack Overflow用户
提问于 2013-09-02 22:33:48
回答 2查看 5.4K关注 0票数 3

在Java中如何在会话到期前提醒用户?

在StackOverflow中,这个问题被讨论了很多次。但我的问题略有不同。我需要修改现有的应用程序。我的应用程序非常大。如果用户没有响应,会话将在30分钟后过期。我希望在会话到期之前显示警报,例如在第25分钟时,我希望向用户显示有关会话到期的提示

在我的应用程序中,使用了2000多个jsp,没有使用通用的js。因此,我无法更改所有的jsp文件,使其包含用于检查会话超时的javascript代码。

如何处理这个问题?

EN

回答 2

Stack Overflow用户

发布于 2013-09-02 22:38:40

创建一个iframe,并将jsp页面放在其中。

在顶部页面中,使用javascript监视器来监视jsp页面的变化(https://stackoverflow.com/a/1930942/67566)。

如果jsp页面在25分钟内没有更改,您可以警告用户。

如果您在jsp页面中使用ajax调用,那么这将是一个更大的问题,但是您有如此多的jsp页面的事实使我认为您没有。

票数 3
EN

Stack Overflow用户

发布于 2013-09-02 22:41:17

使用SessionListeners。

通过实现HttpSessionListener,您可以在会话即将到期之前提醒用户。

Have a look at this sample example

编辑:

下面是您可以覆盖的两个方法:sessionCreated(HttpSessionEvent se)和sessionDestroyed(HttpSessionEvent se),它们分别在创建会话和销毁会话时调用。这是一个示例代码片段。

代码语言:javascript
复制
      public void sessionCreated(HttpSessionEvent se)
{
    HttpSession session = se.getSession();
    System.out.print(getTime() + " (session) Created:");
    System.out.println("ID=" + session.getId() + " MaxInactiveInterval="+  
   session.getMaxInactiveInterval());
  }
public void sessionDestroyed(HttpSessionEvent se)
{
    HttpSession session = se.getSession();
    // session has been invalidated and all session data 
    //(except Id)is no longer available

    System.out.println(getTime() + " (session) Destroyed:ID=" 
   + session.getId());
}
private String getTime()
{
    return new Date(System.currentTimeMillis()).toString();
}

您可以在这些方法中编写您的逻辑。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18575583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档