Скорее запустите ajax-опросы на заднем плане.
Вот SSCCE с небольшой помощью jQuery .Просто скопируйте и запустите его (и измените объект flash, чтобы он соответствовал вашему фактическому коду).
<!doctype html>
<html lang="en">
<head>
<title>SO question 2290101</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
setInterval(function() {
$.get('poll');
}, ${(pageContext.session.maxInactiveInterval - 10) * 1000});
});
</script>
</head>
<body>
<object type="application/x-shockwave-flash" ... >
...
</object>
</body>
</html>
Здесь ${pageContext.session.maxInactiveInterval}
возвращает остаток секунд сеансаеще не выжил (и был немного сокращен - просто чтобы успеть к опросу - и преобразован в миллисекунды так, чтобы он соответствовал тому, что ожидает setInterval()
).$.get('poll')
должен вызывать сервлет, который отображается на url-pattern
из /poll
и содержит в основном следующую строку в методе doGet()
.
request.getSession(); // Keep session alive.
Вот и все.