如何在会话过期时(自动)重定向页面,而无需在页面上进行任何用户操作。?
创建一个活动检查器,每分钟检查是否发生任何用户活动(鼠标单击、按键),并向服务器端执行心跳,以在用户处于活动状态时保持会话处于活动状态,而在用户不活动时不执行任何操作。当 30 分钟没有活动(或服务器端设置的任何默认会话超时)时,执行重定向。
这是一个启动示例,几乎没有帮助jQuery http://jquery.com绑定单击和按键事件并触发 ajax 请求。
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$.active = false;
$('body').bind('click keypress', function() { $.active = true; });
checkActivity(1800000, 60000, 0); // timeout = 30 minutes, interval = 1 minute.
});
function checkActivity(timeout, interval, elapsed) {
if ($.active) {
elapsed = 0;
$.active = false;
$.get('heartbeat');
}
if (elapsed < timeout) {
elapsed += interval;
setTimeout(function() {
checkActivity(timeout, interval, elapsed);
}, interval);
} else {
window.location = 'http://example.com/expired'; // Redirect to "session expired" page.
}
}
</script>
创建一个Servlet
它监听/heartbeat
基本上只执行以下操作:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
request.getSession();
}
保持会话存活。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)