会话被销毁后,如何在通知用户的JSP上打印消息?我正在使用一个实现HttpSessionListener的类。
答案 0 :(得分:4)
当会话被销毁时,无论如何都无法从服务器端执行任何操作。在会话销毁时,无法保证您手上有有效的请求/响应对象。最好的办法是在客户端完全处理它,例如使用JS。您可以按HttpSession#getMaxInactiveInterval()
获取当前会话的剩余生命周期,并且可以使用JavaScript的setTimeout()
在一段时间后运行函数。
<script>
setTimeout(function() {
document.getElementById('message').innerHTML = 'Session has timed out!';
}, ${pageContext.session.maxInactiveInterval} * 1000); // It returns seconds, but setTimeout expects milliseconds.
</script>
<div id="message"></div>