jsp – 在Java EE中通知用户有关会话超时的信息

我的要求是用弹出窗口通知用户,如果用户没有在网页上执行任何活动,用户会话将在x秒内超时.

此要求的另一个要求是在弹出窗口中动态减小值x秒.

我使用的环境是Java EE.

使用 HttpSession#getMaxInactiveInterval()setTimeout().除非你想在每个客户端活动(轮询)上推迟超时,否则不需要Ajax用于此特定目的.

基本示例:

<script>
    var secondsBeforeExpire = ${pageContext.session.maxInactiveInterval};
    var timeToDecide = 15; // Give client 15 seconds to choose.
    setTimeout(function() {
        alert('Your session is about to timeout in ' + timeToDecide + ' seconds!')
    }, (secondsBeforeExpire - timeToDecide) * 1000);
</script>

要神奇地减少消息内部的时间,然后你需要一个带有div的覆盖,而不是基本的alert(),你可以通过HTML DOM树控制内容,并在1秒内使用另一个setTimeout()来改变动态的文本.

请注意,此脚本必须由JspServlet提供,以使EL工作.因此,您需要将脚本放在HTML< head>中.在JSP页面中,或者如果你真的希望将所有JS放在一个单独的* .js文件中,那么你需要让JspServlet处理任何* .js请求.

相关文章
相关标签/搜索