Haz uso de HttpSession#getMaxInactiveInterval()
y setTimeout()
. No hay necesidad de Ajax en este propósito particular, a menos que desee posponer el tiempo de espera en cada actividad del cliente (sondeo).
Ejemplo básico:
<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>
para disminuir el tiempo dentro del mensaje mágicamente, a continuación, en lugar de la alert()
básica que necesita una superposición con un div en el que usted tiene control sobre el contenido HTML a través del árbol DOM y utilice otro setTimeout()
en 1 segundo para cambiar el texto dinámicamente.
Tenga en cuenta que esta secuencia de comandos debe ser atendida por el JspServlet
para que el EL funcione. Por lo tanto, debe colocar la secuencia de comandos en el HTML <head>
de la página JSP o, si realmente desea tener todas las JS en un archivo separado *.js
, debe dejar que la JspServlet
maneje las solicitudes *.js
también.
sugerencia realmente útil y hasta el punto. Gracias. –
Tiene razón, no hay una estricta necesidad de AJAX, pero lo bueno de usar 'XMLHttpRequest' para actualizar la sesión es que el usuario no tendrá que desplazarse para evitar el tiempo de espera. Esto puede ser útil al completar un formulario, por ejemplo. –
"si realmente desea tener todos los JS en un archivo * .js por separado, entonces debe permitir que el JspServlet maneje las solicitudes * .js también" - ¿puede explicar esto, no estoy familiarizado con JS, y tengo que poner esta función en un archivo * .js por separado, ya que tengo muchas páginas jsp? ¿Qué debo hacer para que esto funcione así? @BalusC –