簡體   English   中英

如何在jsp中1分鍾之前顯示會話即將超時對話框?

[英]how to show session is about to timeout dialog before 1 min in jsp?

我正在嘗試顯示會話即將在基於shiro的應用程序shiro時對話框,這是我嘗試的代碼,但仍無法正常工作...

   <%
        Subject user = SecurityUtils.getSubject();
        Session usersession = user.getSession(true);
        if(user.isAuthenticated()){

                    Date startTime = usersession.getStartTimestamp(); //login time
                    Date lastAccessTime = usersession.getLastAccessTime(); //last active time
                    Date currentTime = new Date(); // current time
                    long diffInSec = (currentTime.getTime()- lastAccessTime.getTime())/1000 ; // calculate idle time of user
                    long timeout = (long)(usersession.getTimeout()* 0.001); // get sessiontime out in seconds
                    long oneMinleft = timeout - 60 ; // get time to show timeout dialog before 1 min of session timeout
                    System.out.println("startTime :"+startTime);
                    System.out.println("lastAccessTime :"+lastAccessTime);
                    System.out.println("currentTime :"+currentTime);
                    System.out.println("diffInSec :"+diffInSec);
                    System.out.println("Timeout:"+timeout);
                    System.out.println("Seconds left to timeout:"+oneMinleft);
                    System.out.println();

                        if(diffInSec >= oneMinleft){ %>
                          <script type="text/javascript">                                
                                    showTimeout(); // show dialog
                          </script>
                       <% 
                        }
        }

    %>

任何幫助表示贊賞

感謝和問候

您的問題是您正在JSP中執行此操作,因此當用戶發出請求時該請求將被執行,因此它不會空閑並且會話超時會重新啟動。 您可能會在javascript中執行類似的操作,因此當用戶什么都不做時,時間就會流逝。

您可以通過以下方式混合使用JSP和javascript:

setTimeout(function(){showTimeout()},<%= session.getMaxInactiveInterval() - 60*1000 %>);

您不需要lastAccessTime,因為您知道出席請求時它始終為0。

為此使用javascript代碼。

setTimeout(function(){alert("alert message to show")},timeInMilliseconds);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM