我的要求是用弹出窗口通知用户,如果用户没有在网页上执行任何活动,用户会话将在x秒内超时. 此要求的另一个要求是在弹出窗口中动态减小值x秒. 我使用的环境是Java EE. 使用 HttpSessi
此要求的另一个要求是在弹出窗口中动态减小值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请求.